AndroidStudio 使用系统的jar包编译但不打包

2019-12-11  本文已影响0人  ncd

以下以classed.jar为例
1.将jar包复制到libs目录下,右键add as libraries
此时你会在app下的build.gradle中看到对此jar包的引用

image.png
因为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

上一篇下一篇

猜你喜欢

热点阅读