Android studio 導入github工程
來自: http://blog.csdn.net/onlysnail/article/details/45115093
從github下載兩個開源項目:
PagerSlidingTabStrip | Android-Universal-Image-Loader-master
https://github.com/astuetz/PagerSlidingTabStrip
https://github.com/nostra13/Android-Universal-Image-Loader
下文說的Project等同于eclipse中的workspace,Module等同于eclipse中的project
先說導入PagerSlidingTabStrip:
文件列表的兩個Modul,一個library,一個sample。如果是eclipse的話直接選中這兩個modul導入就可以了。
如果使用Android Studio,則可以分兩種方式導入。看第一張圖結構,一些gradle文件說明了這個Project可以整個導入,導入后文件根目錄就是工作空間的名詞,里面兩個modle,sample和library。當然如果我已經有了工作空間,只需要導入sample和library,就是下文說的第二種方式了。然后看第二張圖,很明顯它不能做為一個Project整個導入,它沒有gradle構建項目的配置文件,所以你必須有一個Project,然后通過下文的第二種方式導入。
第一種方式:
先看下導入成功的結構
下載完項目先不要急著導入,按下文操作修改一些gradle相關文件后再導入,特別是下文說的第二個需要修改的文件,如果本地沒有這個配置的包,導入時會花很長時間去下這個包,但是一般我們在安裝studio的時候就已經有了。
這里從第一步開始導入并解決這些錯誤。
打開你的文本編輯器,修改配置文件。
第一個文件:PagerSlidingTabStrip-master\build.gradle
dependencies { classpath 'com.android.tools.build:gradle:0.6.+' }
0.6+,改成你的版本。如果你不知道該改成啥,最簡單的方式是你新建一個project,找到這個文件看這個值是多少。
更改后:
dependencies { classpath 'com.android.tools.build:gradle:1.0.0' }
第二個文件:D:\PagerSlidingTabStrip-master\gradle\wrapper\gradle-wrapper.properties
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
更改后:
<pre name="code" class="plain">distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip
第三個文件:
D:\PagerSlidingTabStrip-master\gradle.properties
ANDROID_BUILD_TARGET_SDK_VERSION=19 ANDROID_BUILD_TOOLS_VERSION=19 ANDROID_BUILD_SDK_VERSION=19
對應改成你的版本
更改后:
ANDROID_BUILD_TARGET_SDK_VERSION=21 ANDROID_BUILD_TOOLS_VERSION=21.1.2 ANDROID_BUILD_SDK_VERSION=21
(如果你的項目這個文件沒有上面配置,則不用管。)
第四個文件:
D:\PagerSlidingTabStrip-master\library\build.gradle
apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'
注釋掉這句代碼:
更改后:
//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
target=android-17指定你的sdk版本,我的sdk沒有這個版本,我沒有修改這個文件,結果編譯通過可以運行。有沒有覺得很不可思議?其實之前已經指定了。
看文件 D:\PagerSlidingTabStrip-master\gradle.properties
ANDROID_BUILD_TARGET_SDK_VERSION=21 ANDROID_BUILD_TOOLS_VERSION=21.1.2 ANDROID_BUILD_SDK_VERSION=21
Yes,就是這里了。
看文件 D:\PagerSlidingTabStrip-master\sample\build.gradle和D:\PagerSlidingTabStrip-master\library\build.gradle
android { compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION) buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION defaultConfig { minSdkVersion 8 targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION) versionName project.SAMPLE_VERSION_NAME versionCode Integer.parseInt(project.SAMPLE_VERSION_CODE) }各自已經引用了,minSdkVersion=8,我們也可以全局去指定,然后引用。
配置:ANDROID_BUILD_MIN_SDK_VERSION=14
引用:
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中都有引用。
ANDROID_BUILD_MIN_SDK_VERSION=14 ANDROID_BUILD_TARGET_SDK_VERSION=21 ANDROID_BUILD_TOOLS_VERSION=21.1.2 ANDROID_BUILD_SDK_VERSION=21然后不要忘了注釋掉
libray中build.gradle中的一句代碼:
apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'
然后同步gradle文件,點擊這個按鈕
結果還是報錯,其實和上面一樣。
知道是什么原因了,就不要一個個改了,直接去PagerSlidingTabStrip-master\gradle.properties源文件中把這些配置copy過來一次搞定。
VERSION_NAME=1.0.1 GROUP=com.astuetz SAMPLE_VERSION_NAME=1.0.2 SAMPLE_VERSION_CODE=3
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文件?
下篇文章繼續。