1、添加jar
将framework代码打包成classes.jar拷贝至libs文件夹下;将项目栏从Android模式转换为Project模式可以看到libs文件夹,如果没有可以在app文件夹下创建。
添加jar后,右键点击jar,选择 Add As Library选项,弹出弹窗选择ok。
2、配置Dependency
点击File,选择Project Structure,进入,点击最下面的app,看到Dependencies,下面已经有我们刚添加的jar了,将其的Scope从 implementation 改为 compileOnly,进入build.gradle文件,如果有implementation fileTree(include: [’*.jar’], dir: ‘libs’),注释掉,这个的意思是要implementation libs下的jar。
如果你的dependencies是下面这样的话,这一步骤就算完成了。
dependencies {
//implementation fileTree(include: ['*.jar'], dir: 'libs') //看这句和最下一句 中间随意
implementation 'com.android.support:leanback-v17:27.1.1'
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.github.bumptech.glide:glide:3.8.0'
compileOnly files('libs/classes.jar')
}
3、配置依赖Order
经过1、2步配置仍有SDK中找不到变量的错误,这是需要修改Module的.iml,打开app.iml文件,找到最下面的orderEntry部分,更改依赖顺序:
<orderEntry type="library" name="Gradle: __local_aars__:D.\code\aswork\TestBlueTooth\app\libs\classes.jar:unspecified@jar" level="project" />
//中间一长串是我的jar和项目地址,每个人都不一样
将其移动至
<orderEntry type="jdk" jdkName="Android API 26 Platform" jdkType="Android SDK" />
4、配置编译Option
尽快前三步已经可以消除编译错误,但是在真正BuildAPK时仍会报错,这样就需要添加编译参数,在生成APK时优先使用framework.jar。
在Project的build.gradle中添加:
allprojects {
repositories {
google()
jcenter()
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.add('-Xbootclasspath/p:app\\libs\\classes.jar')
}
}
}