检查依赖:
*****
LOCAL_SRC_FILES := $(call all-java-files-under, app/src, otherModule1/src ,otherModule2/src)
LOCAL_STATIC_JAVA_LIBRARIES := lib1 lib2
LOCAL_JAVA_LIBRARIES := lib3
*****
说明:
1.LOCAL_SRC_FILES 文件主要是Java文件
2.LOCAL_STATIC_JAVA_LIBRARIES静态库主要是jar包,当然也可以是class文件,要看lib1或者lib2的Android.mk怎么写,输出在哪,以什么形式输出。默认的话没有打包成jar。
转Gradle
1.LOCAL_SRC_FILES转为
android {
************
sourceSets {
main {
java.srcDirs = ['src/main/java',
'../otherModule1/src/main/java',
'../otherModule2/src/main/java']
}
}
****************
}
2.LOCAL_STATIC_JAVA_LIBRARIES转为:
dependencies {
provided 'libpackage1:lib1:1.0.0'//以maven形式安装到本地或远端仓库的
provided files('/libs/lib2.jar')//直接jar包形式的。
provided files('/libs/lib3.jar')//如果lib3是通过Android.mk生成且没有打包成jar的可以直接作为src依赖进来。参考1
如果还有错
1.检查报错的类,查找该类在哪。检查该类所在的moudle里面的mk输出到了哪。再次检查主moudle中的mk文件。是否还有其他依赖包含了报错的类。找到后再按上面步骤以合适的形式加入Gradle。
2.出现包重复或者包里面的类重复。检查包依赖包的情况。有的话外部包以provided形式加载内部包。
其他
如果是使用自定义android framewrok,请先配置以下,优先于系统sdk编译。
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
def curPath =System.getProperty("user.dir") ;
println "curPath:"+curPath;
options.compilerArgs.add('-Xbootclasspath/p:~/myandroid-framework.jar')
}
}