Android Studio中解决framwork.jar和SDK api冲突的方法

Android Studio中解决framwork.jar和SDK api冲突的方法
Android开发中,系统工程师可能需要在系统层添加接口,这些新加的接口在Android Studio应用调用时常常会因找不到接口而导致编译不通过。现以SetupWizard_oem应用为例来说明解决方法。

一、添加相应的Jar包到编译环境。
out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes-full-debug.jar取出该jar放置到项目中,配置build.gradle中以provided方式(只在编译时引用,不打包到应用中)编译。
dependencies {
androidTestCompile(‘com.android.support.test.espresso:espresso-core:2.2.2’, {
exclude group: ‘com.android.support’, module: ‘support-annotations’
})
compile ‘com.android.support:appcompat-v7:24.2.1’
testCompile ‘junit:junit:4.12’
provided files(‘libs/framework.jar’)
}

二、配置jar包引用的优先级。
经过第一步,可以消除一部分标红包报错信息,但可能还会报部分方法找不到。原因是:Android Studio会默认优先引用Android SDK中的类,这样该类中新增的接口将找不到,故现需调整framework.jar的优先级高于Android SDK的。修改SetupWizard.iml(项目名.iml文件),将framework的调整到Android SDK之前。

三、配置jar包编译的优先级。
经过第二步,代码中所有标红的报错可消除,当真正启动Build APK编译时可能又会报错找不到对应方法,此时应该配置jar的编译优先级,在Project的build.gradle中做如下配置,此时可顺利编译出APK。
allprojects {
repositories {
jcenter()
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.add(‘-Xbootclasspath/p:SetupWizard\libs\framework.jar’)
}
}
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值