1. 程式人生 > >Android Studio Project 中Module打包成aar包

Android Studio Project 中Module打包成aar包

在公司開發中遇到這樣需求,將一個獨立的應用嵌入其他應用當中;

相關方法有兩種:

第一種是將被嵌入的應用打包成 jar 包,但是這樣的侷限性是無法將被嵌入的應用所使用的資源性檔案一起打包;

第二種是將被嵌入的應用打包成 aar 包,這也是 Android Studio 的一種新特性,可以將應用所使用的資源性檔案一起打包;

如果Project 中 Module 是一個應用,則在 Module 的 build.gradle 檔案中定義屬性為:apply plugin: 'com.android.application';而如果 Mudule 是一個被引用的依賴 lib 庫的話,則在 Module 的 build.gradle 檔案中定義屬性為: apply plugin: 'com.android.library;所以當我們將應用 Module 打包出 aar 檔案的時候,需要修改型別屬性。正常情況下,直接重新編譯 Module 後可以在 

 目錄下看到所要的 aar 打包檔案。

也有可能在重新編譯專案應用的時候,會出現找不到某些資原始檔的錯誤;這可能是因為被嵌入專案引用了某些開源庫,所以在引用的時候需要將這些配置也手動新增進來。

還遇到了如下圖的錯誤:

 同時在引用成功後,檢視專案目錄結構也確實可以查到該類,如下圖:


按正常情況不應該出現這種錯誤的;後面經過查詢和驗證,其實出現這種錯誤的原因是 KdsCombinationDeailActivity 類當中我還引用了其他自定義的 lib 依賴庫;而在引用的時候只是引用了打包成功後的 aar 包,而沒有手動新增被嵌入專案所依賴的 lib 庫(打包 aar 檔案的時候這些依賴庫需要自己手動新增);如下圖


在引用打包成功後的 aar 的同時也需要手動新增依賴庫檔案 shareLib 和 shareMainLib(直接將 shareLib 和 shareMainLib 依賴庫的 aar 包直接拷貝過去也可以);這樣就OK了。