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包反複
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yYyQzM4cjMkNTMzcDMyQGN2EWO3IDNjFjZwU2MjdTN18CXzAzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL2M3Lc9CX6MHc0RHaiojIsJye.png)
解決方法:
在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 工程都編譯通過了。