1. 程式人生 > >Gradle 編譯多個project(包括多Library庫project依賴)指導

Gradle 編譯多個project(包括多Library庫project依賴)指導

pil 出現 基於 viewpage eclips support class 什麽 cor

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)。


Gradle 編譯多個project(包括多Library庫project依賴)指導