Android知识Android技术知识Android

在AS中导入修改后的android.jar编译问题

2016-08-11  本文已影响2114人  zyyoona7

背景

由于目前公司在开发机顶盒项目,和厂商合作,其中有些jar包对android.jar中的内容做了修改。开始在Eclipse上开发,可以调整编译包的优先级,一直没什么问题;可是现在Android Studio越发成熟,再不使用Android Studio开发你就out啦!!!所以问题来了:AS默认是不支持改变编译优先级的,我们修改过的android.jar根本引用不到里面的内容

解决

Android Studio在编译时默认系统SDK的优先级最高,所以如果你更改了android.jar的内容,默认情况下是引用不到的~那么在Android Studio中如何将我们的jar包优先于android.jar编译?解决的办法有两种:

1.替换android.jar

第一种方法比较简单粗暴,把你的修改后jar包内的所有文件复制到你编译的SDK版本对应目录下面的android.jar中,进行文件的替换。这种效果亲测可以

2.改变build.gradle配置(推荐)

这种方法是谷歌搜到的,先附上链接How to put my libraries in front of android.jar by editing build.gradle in Android-Studio
步骤如下:

allprojects {    
    repositories {        
        jcenter()    
    }    
}
gradle.projectsEvaluated {        
    tasks.withType(JavaCompile) {          
        options.compilerArgs.add('Xbootclasspath/p:app\\libs\\xxx.jar')       
    }    
}

这段代码,app是你的module名称,一般为app;xxx.jar是你jar包名称。

<content>
...
</content>
<orderEntry type="library" exported="" name="xxx" level="project" />
<orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
...

OK了,这样就大功告成了~体验用as开发的乐趣吧!

上一篇 下一篇

猜你喜欢

热点阅读