A. 如何从android source code中汇出JAR供SDK使用
需要在linux下面编译源码 生成新的class.jar供你使用 并且生成的img文件还李神运需要哪梁烧录瞎伍到设备里面
B. android studio里面导入的jar会报这样的错误Source not found,是什么问题
1、将jar包放入项目里的libs文件夹中。 2、在project选中jar包点击右键"Add as library"。 3、这两步是网上比较容易找烂橘到饥铅团的,但此时项目仍然是无法正常编译的,这时需要在项目的build.gradle文件里激液的dependencies节加入 dependencies
C. android 怎么把多个so文件编译成jar
一共分为2步:
1.在java中编写要调用的静态方法和需要加载的库,并生成头文件。
2.配置gradle
3.配置Android.mk文件和application.mk文件
下面一步步的走:
首先需要在Java类中声明要调用的方法,以及要加载的库,我们在包下新建一个jniUtil类,如下所示
[plain]view plain
publicclassjniUtil{
//要加载的库,生成的库格式为:lib+库名.so
static{System.loadLibrary("hello-jni");}
//要调用的本地方法,在c文件中该方法名称格式为:java_包名_类名_方法名
();
}
注意:在编译时该类中不能有汉字,包括注释,否则会出现编码GBK的不可映射字符错误。
接下来就是利用external Tools生成头文件.h,这里可参考点击打开链接
然后就会在main目录下生成Jni文件夹,并且包含.h文件。下面就是编写C文件,或者可以拷贝已经写好的C文件放置在该jni文件夹中.
2.配置gradle
我们这里不用gradle 去编译,而是只让他去加载已经生成的so库,改用android.mk 去编译(稍后配置android.mk)
在app的build.gradle 下的android 标签下添加:
[plain]view plain
sourceSets{
main{
jni.srcDirs=[]//禁止gradle自动编译,使用已经编译好的So库
jniLibs.srcDirs=['src/main/jniLibs','libs']//指向要使用的库文件//的路径,前边的是自己项目的,后边的是第三方的so
}
}
从上面可以看出,我们生成的库是放在
src/main/jniLibs
目录下面的,那么这个是如何配置呢?还是在该gradle下面配置ndk的编译脚本,注意放在android标签外面:
[plain]view plain
tasks.withType(JavaCompile){
compileTask->compileTask.dependsOnCopyToJniLibs
}
taskndkBuild(type:Exec,description:'CompileJNIsourceviaNDK'){
Propertiesproperties=newProperties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
defndkDir=properties.getProperty('ndk.dir')
commandLine"$ndkDir/ndk-build.cmd","NDK_PROJECT_PATH=$projectDir.absolutePath\build","APP_BUILD_SCRIPT=$projectDir.absolutePath\src\main\jni\Android.mk","NDK_APPLICATION_MK=$projectDir.absolutePath\src\main\jni\Application.mk"
//你自己的mk文件目录
}
在ndkbuild完成后把生成的so文件复制到jniLibs,这里和上面配置的加载so文件路径要一致哦
[plain]view plain
taskCopyToJniLibs(type:Copy,dependsOn:'ndkBuild',description:'thenativelibstojniLibs'){
fromfileTree(dir:file(buildDir.absolutePath+'/libs'),include:'**/*.so')
intofile('src/main/jniLibs')
}
新建Android.mk和application.mk,这里我把Android.mk和application.mk放在jni文件夹下了,具体可以自己修改。默认生成的SO文件会在build下面的libs中,我们拷贝出来放到src/main/jniLibs下面。
3.配置Android.mk和Application.mk
D. android studio 怎么进入source源码
在build.gradle中添加jar依赖:
Rebuild后点进jar库中的某个*.class文件,然后看右上角(是不是发现了Attach Sources选项):
根据2中的步骤选择XX.source.jar即可绑定源码(或者选森基亮择src源码存锋缺放目录)
除了上面的方法,还此宽可以使用手动导入的方式:
详细解答
E. 怎样查看 Android APP 源代码
用压缩软件打开apk文件,解压出根目录中的classes.dex文件
使用cmd ,dex2jar.bat classes.dex命令将classes.dex转换为jar
再用jd-gui打开该jar就可以查看源码了,如果apk安全性好的话,有些代码是看不到的
F. intellij idea 打包的android source jar的包为什么没有meta-inf
Eclipse下打包源码jar还是很方便的,IDEA下就没有那么快捷的方法了,需要手动建立Artifact。对于我这种开源癖患者,断然无法接受看不到源码的binary。特别是遇到Lucene这样的重量级类库,总是好奇里面发生了些什么,并且时不时需要查看方法的注释。
像Lucene这样的Apache项目一般采用Ant编译,编译脚本里就附带了source-jar选项,稿中如果项目里没有这个项目键答山,就需要参照下面的步骤手动建立。
在Project Structure页面,新建一个Empty的Artifact:
接着编译,编译完成之后就可以在_source下找到名为crawler4j_source.jar的源举清码包了。
G. android 怎么修改第三方jar包
一、下载jd-gui.exe反编译工具。
二、用jd-gui.exe打开你的第三方jar包,这边以新浪微博sdk(weibo_sdk.jar)为例说明,打开weibo_sdk.jar
三、修改WeiboDialog文件中的内容,如上图一样选中WeiboDialog,然后点击file--》save source--》保存到桌面产生WeiboDialog.java文件
四、用记事本或source Insight 打开进行修改,修改完后保存。
五、新建一个工程,并且新建一个与WeiboDialog文件所在package一致的package,然后把WeiboDialog.java文件拷贝到新建的package中
六、若 WeiboDialog.java 拷贝进去有错误,则先修复错误,然后clean一下工程(工具栏 project --》clean)
七、找到工程所在目录中的bin\classes\....,会生成你修改后的文件的.class文件,复制到你的第三方jar所在目录。
八、用WinRAR打开你的第三方jar,替换jar中相同的该文件,ok完成!
H. android 项目如何导出带源码的jar包
用rar压缩软件都可以打开的
I. android调试时遇到source not found 如何解决,求解决~!
source not found一般的错误原因是引用的jar包没有导入到你的工程里面。
解决方含消案是:如果工程文件夹显示带叉的箭头,散老孝则表示某个类或者冲稿缺少必要的jar包,这个时候你可以点开出错的文件夹,打开某个类,如果对着提示没有显示错误,就可以右键点击工程文件,点击bulid path,查看里面是否有jar包是打叉的,从网上找到对应的粘贴到lib文件夹,刷新工程文件就可以看到错误消失了。
J. Android源码开发记录-自定义系统服务和jar包生成
创建文件 IMyApiService
文件路径 frameworks/base/core/java/android/os/
定义了一个计算和的方法。
在frameworks/base/Android.mk
LOCAL_SRC_FILES最后加入
创建文件 MyApiService.java
文件路径 frameworks/base/core/java/com/android/server/
实现aidl的接口,计算参数和。
(1)Context添加服务名
文件路径 frameworks/base/core/java/android/content/Context.java
添加
(2)添加启动服务
文件路径 frameworks/base/services/java/com/android/server/SystemServer.java
在startOtherServices方法中添加
创建 MyApiManager.java文件
文件路径 frameworks/base/core/java/android/app/
文件路径 frameworks/base/core/java/android/app/ContextImpl
添加registerService
记住make update-api
编译打包完成后,烧写新的固件。
jar主要为了在android studio编译环境中MyApiManager报错导致编译不通过问题。
也可以导入frameworks jar包或使用反射。
在源码目录packages/app下新建MyJar文件夹
并新建目录com/myapi/(包名)
在目录com/myapi/新建文件MyApi.java
具体Android.mk语法这里不做解释,可以自行查阅
在MyApi目录下直接运行mm编译命令(记得先source build/envsetup.sh)
待编译完成后,jar生成目录
out/target/common/obj/JAVA_LIBRARIES/Myapi_intermediates/javalib.jar
可更改为其他名称。