導入一個AndroidStudio工程作為一個Library Module

在我們有兩個Android Studio工程的情況時,我們想使用一個作為library工程導入到另一個工程作為一個module。我們可以使用Android Studio很容易的做到。
讓我們假設我們有兩個工程:MyApplication和MyLibrary,我們想導入MyLibrary到MyApplication作為一個module。

1.首先我們需要從MyLibrary工程中找到module中的build.gradle文件,它通常在app目錄下,除非你修改了module的名稱。

注意builde.gradle文件的plugin是‘com.android.application’。為了使用這個工程作為一個library工程,我們需要修改為 ‘com.android.library’。文件的內容就像這樣:

試著sync一下工程,會出現一個錯誤: Library projects cannot set applicationId(類工程不能設置applicationId)。

我們可以刪除gradle文件中的applicationId這行,在defaultConfig 括號里面。

MyLibrary 工程就修改完了。

2.然后我們在MyApplication 工程中導入 MyLibrary 作為一個module。 在MyApplication 工程中, 點擊File -> New -> Import Module。

出現一個對話框

從MyLibrary工程中找到你想要導入的Module目錄。通常它是app module除非你給了它另一個名稱。

如果在MyApplication工程中Module使用相同的名稱將會出現錯誤。為了從一個library工程導入一個修改的Module,我們可以給它一個版本號在Module名稱設置框。

修改Module的名稱為my-library,導入成功。

到這一步差不多已經完成,最后一步是在MyApplication 工程中修改依賴。 很多人會忘了做這一步。
打開工程結構對話框,選擇app Module(可以有別的名稱),在右側點擊依賴標簽。


找到加號并點擊它,從彈出菜單中選擇module依賴。

然后選擇我們剛從MyLibrary工程中導入的library module。

點擊OK,就完成了。
IDE會在MyApplication/app/build/gradle file文件添加好依賴。
依賴部分就像下面的一樣:

dependencies {
    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
    compile ‘com.android.support:appcompat-v7:22.2.0‘    
    compile project(‘:my-library‘)
}

它可能工作的挺好,但這有一個很重要的問題,MyLibrary工程有它自己的依賴。例如,MyApplication和MyLibrary使用support libraries,這有可能會發生沖突。
我們可以在gradle中通過transitive配置依賴避免這個問題。 我們可以修改這行
compile project(‘:my-library‘)

compile(project(‘:my-library‘)){
 transitive=false;
}

這個問題就可以避免。Done!

That’s all. Happy coding!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容