gradle android

從github下載兩個開源項目:android

PagerSlidingTabStrip    |    Android-Universal-Image-Loader-mastergit

https://github.com/astuetz/PagerSlidingTabStripgithub

 https://github.com/nostra13/Android-Universal-Image-Loaderapp

 

 

下文說的Project等同於eclipse中的workspace,Module等同於eclipse中的projecteclipse

先說導入PagerSlidingTabStrip:編輯器

文件列表的兩個Modul,一個library,一個sample。若是是eclipse的話直接選中這兩個modul導入就能夠了。gradle

若是使用Android Studio,則能夠分兩種方式導入。看第一張圖結構,一些gradle文件說明了這個Project能夠整個導入,導入後文件根目錄就是工做空間的名詞,裏面兩個modle,sample和library。固然若是我已經有了工做空間,只須要導入sample和library,就是下文說的第二種方式了。而後看第二張圖,很明顯它不能作爲一個Project整個導入,它沒有gradle構建項目的配置文件,因此你必須有一個Project,而後經過下文的第二種方式導入。ui

第一種方式:

先看下導入成功的結構spa

下載完項目先不要急着導入,按下文操做修改一些gradle相關文件後再導入,特別是下文說的第二個須要修改的文件,若是本地沒有這個配置的包,導入時會花很長時間去下這個包,可是通常咱們在安裝studio的時候就已經有了。.net

 

這裏從第一步開始導入並解決這些錯誤。

 

打開你的文本編輯器,修改配置文件。

第一個文件:PagerSlidingTabStrip-master\build.gradle

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. dependencies {  
  2.         classpath 'com.android.tools.build:gradle:0.6.+'  
  3.     }  

 

0.6+,改爲你的版本。若是你不知道該改爲啥,最簡單的方式是你新建一個project,找到這個文件看這個值是多少。

更改後:

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. dependencies {  
  2.         classpath 'com.android.tools.build:gradle:1.0.0'  
  3.     }  

 

 

 

第二個文件:D:\PagerSlidingTabStrip-master\gradle\wrapper\gradle-wrapper.properties

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. distributionUrl=http\://services.gradle.org/distributions/gradle-1.8-all.zip  

 

gradle-1.8.all.zip,改爲你的版本。如上,若是不知道你能夠新建一個project,去找。

個人android studio版本是1.0.1,gradle文件路徑在android studio的安裝目錄下

D:\Program Files\Android\Android Studio\gradle\gradle-2.2.1

更改後:

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. <pre name="code" class="plain">distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip  
 

 

第三個文件:

D:\PagerSlidingTabStrip-master\gradle.properties

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. ANDROID_BUILD_TARGET_SDK_VERSION=19  
  2. ANDROID_BUILD_TOOLS_VERSION=19  
  3. ANDROID_BUILD_SDK_VERSION=19  


對應改爲你的版本

 

更改後:

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. ANDROID_BUILD_TARGET_SDK_VERSION=21  
  2. ANDROID_BUILD_TOOLS_VERSION=21.1.2  
  3. ANDROID_BUILD_SDK_VERSION=21  

(若是你的項目這個文件沒有上面配置,則不用管。)

 

第四個文件:

 

D:\PagerSlidingTabStrip-master\library\build.gradle

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'  


註釋掉這句代碼:

 

更改後:

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. //apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'  

 

(若是你的項目這個文件沒有上面配置,則不用管。)

 

其餘文件:

D:\PagerSlidingTabStrip-master\library\project.properties和D:\PagerSlidingTabStrip-master\sample\project.properties

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. target=android-17  

指定你的sdk版本,個人sdk沒有這個版本,我沒有修改這個文件,結果編譯經過能夠運行。有沒有以爲很難以想象?其實以前已經指定了。

 

看文件 D:\PagerSlidingTabStrip-master\gradle.properties

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. ANDROID_BUILD_TARGET_SDK_VERSION=21  
  2. ANDROID_BUILD_TOOLS_VERSION=21.1.2  
  3. ANDROID_BUILD_SDK_VERSION=21  


Yes,就是這裏了。

 

看文件 D:\PagerSlidingTabStrip-master\sample\build.gradle和D:\PagerSlidingTabStrip-master\library\build.gradle

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. android {  
  2.     compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)  
  3.     buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION  
  4.   
  5.     defaultConfig {  
  6.         minSdkVersion 8  
  7.         targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)  
  8.   
  9.         versionName project.SAMPLE_VERSION_NAME  
  10.         versionCode Integer.parseInt(project.SAMPLE_VERSION_CODE)  
  11.     }  

各自已經引用了,minSdkVersion=8,咱們也能夠全局去指定,而後引用。

 

配置:ANDROID_BUILD_MIN_SDK_VERSION=14

引用:

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. minSdkVersion project.ANDROID_BUILD_MIN_SDK_VERSION  

 

 

這四個文件改完後就能夠直接導入整個工程了

File-import project-PagerSlidingTabStrip-master(根目錄)

成功導入後的結構圖上面已經給出。

若是有錯點擊

 

第二種方式:

若是已經有Project,只想導入sample和libray這兩個項目到Project。

step1:

File > Import Project

step2:

step3:

 

step4

 

(PS.我已經導入了,因此這個Finish不可點擊)

 

 

導入完後的工做目錄項目不見了,切換顯示方式就有了,點擊Project

 

工程出來了,看message gradle message報錯信息

 

看完第一種方式,這裏能明白是怎麼回事了。

 

在gradle.properties配置上sdk的值,由於sample和library中的gradle.properties中都有引用。

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. ANDROID_BUILD_MIN_SDK_VERSION=14  
  2. ANDROID_BUILD_TARGET_SDK_VERSION=21  
  3. ANDROID_BUILD_TOOLS_VERSION=21.1.2  
  4. ANDROID_BUILD_SDK_VERSION=21  

而後不要忘了註釋掉

 

libray中build.gradle中的一句代碼:

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'  

 

而後同步gradle文件,點擊這個按鈕

 

結果仍是報錯,其實和上面同樣。

 

知道是什麼緣由了,就不要一個個改了,直接去PagerSlidingTabStrip-master\gradle.properties源文件中把這些配置copy過來一次搞定。

 

[plain]  view plain copy print ? 在CODE上查看代碼片 派生到個人代碼片
 
  1. VERSION_NAME=1.0.1  
  2. GROUP=com.astuetz  
  3.   
  4. SAMPLE_VERSION_NAME=1.0.2  
  5. SAMPLE_VERSION_CODE=3  

 

 

而後同步gradle(PS:這個時候我也不清楚能夠編譯否)

oh,編譯經過,也能夠運行,結構以下。

 

PagerSlidingTabStrip這個github的開源控件的兩種導入方式說完。

 

 

另一個Android-Universal-Image-Loader-master

看根目錄結構就知道,須要用第二中方式去導入。

看smple和library的目錄結構:

sample導入能夠正常識別,記得導入以前修改build.gradle文件。

library識別不了。緣由在於build.gradle這個文件。

直接copy到library目錄下,並修改

apply plugin: 'com.android.application'

改成:

apply plugin: 'android-library' 或者 apply plugin: 'com.android.library' 

這樣就能夠正常導入了。

 

可是新的問題又來了

如何在sample中引用library這個項目?

先把sample中libs中的universal-image-loader-1.9.4-SNAPSHOT.jar這個包刪掉

點擊sync gradle message後工程很明顯會報錯。

開始引入library,如圖操做:

 

點擊Mehule dependency後會彈出一個窗口,選中library便可。sync gradle message,工程就不會報錯了。

 

如何將libray打包成jar文件? 如何在項目中導入這個jar文件?

下篇文章繼續。

相關文章
相關標籤/搜索