Android studio打包時忽略指定的jar
阿新 • • 發佈:2019-02-16
前言:最近遇到一個問題,就是公司做自己的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,這樣就完成了!