Gradle 編譯多個工程(包含多Library庫工程依賴)指導,gradlelibrary
Gradle Android最新自動化編譯指令碼教程(提供demo源碼)
這篇文章我簡單寫了基於Gradle2.1 進行的android project和android library的編譯執行個體,隨後有網友問我是否支援依賴多library編譯,我的回複是肯定的,詳細見下面的指導:
在實際開發中有很多工程引用到了android-support-v4.jar或者其他的jar包資源;
有時候,在每個library庫的libs裡都放進android-support-v4.jar 在eclpse裡編譯運行是沒有問題,因為你可以將多餘的jarexclud編譯設定,但是放在外邊執行gradle build的話,會提示jar包重複
解決方案:
在eclipse裡我們可以將公用的jar包做一個工程,其他library庫引用這個jar包庫,然後再被主project所引用;
這樣的話,在每個庫工程裡的build.gradle裡都要設定如下:
dependencies{compile fileTree(dir:'libs',include:"*.jar")compile project(':DependLibs:appcompat_v7')}
這樣寫貌似挺對,但是仔細想想還是不對,因為每個引用的庫都編譯的時候把公用jar庫給編譯引用了,最後還是會提示衝突。
正確寫法改正如下:
dependencies{compile fileTree(dir:'libs',include:"*.jar")//compile project(':DependLibs:appcompat_v7')compile 'com.android.support:support-v4:20.0.0'}
還有一個不正確寫法
dependencies{compile fileTree(dir:'libs',include:"*.jar")//compile project(':DependLibs:appcompat_v7')compile 'com.android.support:support-v4:20'}
看到這2個寫法的區別了嗎?
提示你找不到 Could not find com.android.support:support-v4:20
出現這種問題,自己先看看:
Android sdk的 Extras包裡的Android Support Respository和Andoid Support Library是否 Installed,如果安裝了
可以跑到下面目錄找D:\dev\adt-bundle-windows-x86-20140702\sdk\extras\android\m2repository\com\android\support\support-v4\20.0.0
找到了,就開始build吧。
引用了很多slidingmenu_library,viewPagerlibrary 工程都編譯通過了。
有什麼問題,大家可以跟我交流(QQ群:221057495)。
Linux動態庫多重依賴,編譯問題
這隻能說明一個問題,你依賴的庫本身有問題,沒有把它的依賴都加進去,也就是你例子中的①libb.so依賴liba.so;,你應該在產生libb.so的時候,把對liba.so的依賴加進去,這樣應該就沒有問題了。