在我們有兩個(gè)Android Studio工程的情況時(shí),我們想使用一個(gè)作為library工程導(dǎo)入到另一個(gè)工程作為一個(gè)module瘫筐。我們可以使用Android Studio很容易的做到堤魁。
讓我們假設(shè)我們有兩個(gè)工程:MyApplication和MyLibrary喂链,我們想導(dǎo)入MyLibrary到MyApplication作為一個(gè)module。
首先我們需要從MyLibrary工程中找到module中的build.gradle文件妥泉,它通常在app目錄下椭微,除非你修改了module的名稱。
注意builde.gradle文件的plugin是‘com.android.application’盲链。為了使用這個(gè)工程作為一個(gè)library工程蝇率,我們需要修改為 ‘com.android.library’。文件的內(nèi)容就像這樣:
試著sync一下工程刽沾,會(huì)出現(xiàn)一個(gè)錯(cuò)誤: Library projects cannot set applicationId(類工程不能設(shè)置applicationId)本慕。
我們可以刪除gradle文件中的applicationId這行,在defaultConfig 括號(hào)里面侧漓。
MyLibrary 工程就修改完了锅尘。然后我們?cè)贛yApplication 工程中導(dǎo)入MyLibrary 作為一個(gè)module。
在MyApplication 工程中火架, 點(diǎn)擊File -> New -> Import Module鉴象。
出現(xiàn)一個(gè)對(duì)話框
從MyLibrary工程中找到你想要導(dǎo)入的Module目錄。通常它是app module除非你給了它另一個(gè)名稱何鸡。
如果在MyApplication工程中Module使用相同的名稱將會(huì)出現(xiàn)錯(cuò)誤纺弊。為了從一個(gè)library工程導(dǎo)入一個(gè)修改的Module,我們可以給它一個(gè)版本號(hào)在Module名稱設(shè)置框。
修改Module的名稱為my-library,導(dǎo)入成功骡男。
到這一步差不多已經(jīng)完成淆游,最后一步是在MyApplication 工程中修改依賴。很多人會(huì)忘了做這一步。
打開工程結(jié)構(gòu)對(duì)話框犹菱,選擇app Module(可以有別的名稱)拾稳,在右側(cè)點(diǎn)擊依賴標(biāo)簽。
找到加號(hào)并點(diǎn)擊它腊脱,從彈出菜單中選擇module依賴访得。
然后選擇我們剛從MyLibrary工程中導(dǎo)入的library module。
點(diǎn)擊OK,就完成了陕凹。
IDE會(huì)在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‘)
}
它可能工作的挺好,但這有一個(gè)很重要的問題杜耙,MyLibrary工程有它自己的依賴搜骡。例如,MyApplication和MyLibrary使用support libraries佑女,這有可能會(huì)發(fā)生沖突记靡。
我們可以在gradle中通過transitive配置依賴避免這個(gè)問題。
我們可以修改這行
compileproject(‘:my-library‘)
為
compile(project(‘:my-library‘)){
transitive=false;
}
這個(gè)問題就可以避免团驱。Done!