開發中有時候需要我們自己處理一些sdk,以jar包或者aar包的形式提供給其它人員來使用。如果你沒接觸過,在第一次使用時一定要查閱不少資料,從我個人來說,這個過程耗費了很多時間,你得查找,得判斷資料的可靠性等。因此我把這個過程所學到的內容整理了出來。新人或者第一次接觸者,歡迎圍觀。。
首先,簡說一下jar跟aar的區別。jar只有class類不包含res資源,aar包含res資源。更多瞭解參考以下地址
一般來說,用到這個的,都需要使用activity界面,可以做佈局展示。這裏以我個人近期用到的導航示例說明。
1、創建app工程,把與打包功能有關的代碼寫入,並測試走通。
這塊我把導航用到的權限,展示界面,搜索等功能全部寫好,然後通過一個LoginAcitivity裏的一個按鈕來啓動這個界面。
2、刪除多餘代碼,改造成library
這塊我刪除自己的LoginAcitivity以及佈局,並做如下配置。
1)在app的build.gradle中修改,應用去掉改爲library,再把應用的id刪掉。
2)在AndroidManifest.xml文件裏,去掉application裏無用的代碼,並去掉activity的入口代碼。
3)點擊Build菜單的Rebuild Project按鈕
4)在項目的app\build\outputs\aar目錄查找aar文件,即爲需要的aar包
3、aar的使用步驟
1)在app的build.gradle文件的android裏配置
2)在app的build.gradle文件的dependencied裏配置
3)在對應的點擊事件裏打開這個界面
注意 注意 注意
如果你按照這個操作執行成了,那恭喜你,你有了初步認識。但這裏我還是要提個大坑,就是如果你的項目裏還導入了第三方依賴,那你在導入後的項目裏使用到這個的時候會報異常,Java.lang.NoClassDefFoundError,大概是某個類找不到。出現的原因是implementation導入的庫只能在內部使用。瞭解更詳細的可以看這篇文章
這時候我們就要想辦法解決,一個最簡單的辦法,就是在新項目中重新引入依賴。作爲有點素養的人來說,這個操作太粗暴,並非我們所追求的。
重點介紹下面幾種方式:
1)把你使用的第三方依賴所對應的jar找到並導入library的libs中,並重新生成aar文件,再提供使用。操作複雜度1星。
2)把項目中的第三方庫導入到本地,再提供給另一個項目編譯使用,參照如下。操作複雜度3星
3)把項目中的第三方庫文件導入到網絡,再引入使用,參照如下。操作複雜度5星
Android SDK開發初體驗 --aar打包無法引用三方依賴問題
以上我用的第一種來解決,只因爲簡單。
更多打包方式,就不細說了,在開發的右上角,點開方式如下圖
能看到這裏的小夥伴,非常感謝信任與支持。如果有需要轉發,請註明地址來源!