1: AndroidStudio IDE 的编译无错误提示
这里推荐在 Iml 文件中自定义:
<orderEntry type="jdk" jdkName="Android API 22 Platform-aosp" jdkType="Android SDK" />
如何自定义Android API 22 Platform-aosp, 首先把这个名字改错, 然后编译, 根据提示进入到SDK的编辑界面:
这里先删除 android.jar 然后再加入 framework.jar 和 android.jar
这样就确保IDE编译无错误。
2: Gradle的编译出APK
这里就是重头戏了, Gradle的编译脚本是定义在 build.gradle 中的。
对于三方普通的 jar 包的处理, 比较简单:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v4:22.1.1' compile 'com.github.lecho:hellocharts-library:1.5.5@aar' compile 'com.avast:android-styled-dialogs:2.2.0' }
但是这里无法配置我们需要的jar包(优先级比android.jar高, 而且不要打包到 dex 文件中)
我们可以配置:
allprojects { repositories { jcenter() } gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs.add('-Xbootclasspath/p:libs\\framework.jar') } } }
解释一下, 这是在最外层的 build.gradle 里面配置的, 目的是应用到所有的模块。
在进行 javac 编译的时候, 添加一个参数。 其实和上面Ant编译的命令是一样的, 都是在 bootclasspath 中引入自己的 jar 包。
测试真实有效(PS 清除了缓存, 没有再次被欺骗)