AndroidStudio 使用系统的jar包编译但不打包
2019-12-11 本文已影响0人
ncd
以下以classed.jar为例
1.将jar包复制到libs目录下,右键add as libraries
此时你会在app下的build.gradle中看到对此jar包的引用
因为
implementation fileTree(dir: 'libs', include: ['*.jar'])
这一句是对libs目录下所有jar包的引用,所以如果需要在编译时打包jar,则可去掉对classes.jar的单独引用:image.png
2.如果只想使用此jar包编译,不需要将jar包编译进apk,则需要作出如下更改:
image.png
可以看到注释了第一句对libs目录的统一处理(如果libs目录有需要打包进apk的jar需单独处理),classes.jar的引用从implementation改为了compileOnly,这样就不会打包进apk,只是不让apk编译通过。
3.如果jar包是framework.jar,且接口与SDK中的android.jar有不同,要优先使用自己的接口,则需要早工程目录下的build.gradle作出如下修改:
image.png
即添加了
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << '-Xbootclasspath/p:app/libs/classes.jar'
}
}
这样会让自己的jar包优先于andorid.jar