標籤:
Android Studio 下項目的依賴配置
背景
項目需要用到一個github上的開源庫swipelistview,原來在eclipse環境下配置過相關的依賴(匯入jar包或者是lib依賴),但是在Android Studio下還是沒有操作過。上網查了一下相關的資料,在stackoverflow上找到了答案。根據上面的介紹,結合實際情況,完成了依賴配置。
stackoverflow答案地址
有兩種方式來進行依賴配置。
1. 使用aar包(這個不太清楚原理和效果,簡單查了一下和maven相關,和jar包相比,可以使用資源檔——jar包不可以使用其資源檔)。例如swipelistview,下面這幾行代碼設定了一下maven遠程庫的地址和aar包依賴。
repositories { maven { url ‘http://clinker.47deg.com/nexus/content/groups/public‘ }}dependencies { compile (‘com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar‘) { transitive = true }}
- 使用本地lib依賴(library庫檔案在本地的拷貝)
第一步,推薦下面這種的目錄結構
-root -lib -abs build.gradle src res -myModule build.gradle settings.gradle
匯入module的操作順序:
File->import module->select source location->ok->finish
說明:
一級目錄root即為根項目的目錄,即為project的名字。
二級目錄myModule為module的名字,lib是在root下的一個檔案夾。
三級目錄abs即為將要依賴的lib庫檔案。
關於Android Studio的project和module,project相當於eclipse的wrokspace,module相當於eclipse的project,同一個project下的module可以進行依賴。
第二步,在檔案settings.gradle中應當是這樣
include ‘:myModule‘, ‘:lib:abs‘
用”括起來的就是當前project下的module名字,可以看出來module abs是帶有相對路徑的。
第三步,接下來在In lib/abs/build.gradle中可能是這樣:
buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:0.7.+‘ }}apply plugin: ‘android-library‘android { compileSdkVersion 19 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion XX targetSdkVersion 19 } sourceSets { main { manifest.srcFile ‘AndroidManifest.xml‘ java.srcDirs = [‘src‘] resources.srcDirs = [‘src‘] res.srcDirs = [‘res‘] } } }}dependencies { compile ‘com.android.support:support-v4:19.0.0‘ }
原答案建議為Remove the supportV4.jar from your local abs library.
第四步,之後在檔案myModule/build.gradle的dependencies中添加依賴:
buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:0.7.+‘ }}apply plugin: ‘android‘android { compileSdkVersion 19 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion XX targetSdkVersion 19 } } dependencies { // Libraries compile project(‘:lib:abs‘) }
第五步,最後在myModule/build.gradle中,添加:
dependencies { compile ‘com.android.support:support-v4:19.0.0‘ // Libraries compile project(‘:lib:abs‘) }
但是根據我的實際操作,不需要將lib庫中的依賴轉移到主module中去,也就是說不執行第三步和第五步,只執行第四步。這個應該是要根據實際情況來決定了~
期間遇到個問題,就是我的兩個module的build tools版本不一致,導致build不成功,我的解決是將較低的那個換成較高的版本解決問題。
最後在項目中直接匯入相應的包名+類名就可以了!
Android Studio 下項目的依賴配置