Android.mk转Gradle思路

检查依赖:

*****
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')
            }
        }

猜你喜欢

转载自blog.csdn.net/panbinxian/article/details/80802780
今日推荐