1. 程式人生 > >Android studio打包時忽略指定的jar

Android studio打包時忽略指定的jar

         前言:最近遇到一個問題,就是公司做自己的rom,對framwork有改動,添加了自己的api,那麼問題來了,我們開發的階段使用的是android原生的環境,所以不可能呼叫得到自己定義的api,那麼為了編譯通過,我們只能把framwork.jar單獨引進了,但是新的問題又來了,framwork.jar非常大,而且在rom裡面已經有了,所以打包的時候就沒有必要帶上這個jar了,那麼如何在Android studio下設定讓專案打包的時候能編譯通過,但是jar又不會編譯到apk裡面呢? 

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

這個樣子的jar包引入是最常用的方式,編譯能通過,同時打包的時候也會將該jar包打包到apk中這樣就會造成apk很大


二、那麼接下來,我們就通過對gradle的配置,讓jar包只在編譯階段對工程起作用,而在打包的階段忽略掉


當我們對該jar的依賴方式改成Provided的時候,gradle中會變成如下圖:


接著我們在project所屬的build.gradle下進行如下配置即可

allprojects {
    repositories {
        jcenter()
    }

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

ok,這樣就完成了!