Android Stdio 引入自定义framework.jar

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 清除了缓存, 没有再次被欺骗)

猜你喜欢

转载自my.oschina.net/u/188924/blog/891349