Android studio打包时忽略指定的jar

         前言:最近遇到一个问题,就是公司做自己的rom,对framwork有改动,添加了自己的api,那么问题来了,我们开发的阶段使用的是android原生的环境,所以不可能调用得到自己定义的api,那么为了编译通过,我们只能把framwork.jar单独引进了,但是新的问题又来了,framwork.jar非常大,而且在rom里面已经有了,所以打包的时候就没有必要带上这个jar了,那么如何在Android studio下设置让项目打包的时候能编译通过,但是jar又不会编译到apk里面呢? 

一、首先我们看一下正常的jar包引入方式

这个样子的jar包引入是最常用的方式,编译能通过,同时打包的时候也会将该jar包打包到apk中这样就会造成apk很大

Android studio打包时忽略指定的jar_第1张图片


二、那么接下来,我们就通过对gradle的配置,让jar包只在编译阶段对工程起作用,而在打包的阶段忽略掉

Android studio打包时忽略指定的jar_第2张图片

当我们对该jar的依赖方式改成Provided的时候,gradle中会变成如下图:

Android studio打包时忽略指定的jar_第3张图片

接着我们在project所属的build.gradle下进行如下配置即可

allprojects {
    repositories {
        jcenter()
    }

    //打包时忽略framework.jar
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs.add('-Xbootclasspath/p:app/libs/framework.jar')
        }
    }
}

ok,这样就完成了!

你可能感兴趣的:(android开发日志)