【轉】【Android】1分鐘不用改任何代碼在Eclipse中使用AAR

來源:互聯網
上載者:User

標籤:exception   guard   led   dex   activity   聯絡   升級   eclips   ane   

原文:https://www.jianshu.com/p/ccf306e08d5b?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

AAR 是 Google 專門為 Android Studio 推出的一種庫檔案格式,用於便捷的分享和使用
Android Library 項目

而被 Google 放棄的 Eclipse ADT 沒辦法像使用 jar 那樣使用 AAR,但是我們可以使用 AAR 裡的檔案快速建立一個 Eclipse Library 項目來使用

AAR -> Eclipse Library
  1. 將 AAR 檔案尾碼名改為 ZIP 並解壓
  2. 在解壓得到的目錄裡建立一個 libs 檔案夾,然後將 classes.jar 檔案和 jni 檔案夾下的所有檔案移到 libs 檔案夾下
  3. proguard.txt 檔案的內容拷貝到你的項目的 proguard-project.txt 檔案中
  4. 在解壓得到的目錄裡建立 project.properties 檔案,內容如下:
    target=android-22android.library=true
    target 的值隨 AAR 裡 Android Manifest.xml 檔案的 targetSdkVersion 屬性值而定
  5. 刪除 aaptjni 檔案夾以及 R.txtproguard.txt 檔案

至此一個 Eclipse Library 項目已經構建完成了,接下來只需開啟 Eclipse 匯入項目並在你的項目中配置引用這個項目即可

FAQ:
  • 運行時如果有 library 中的 Activity 或其他四大組件找不到(ActivityNotFoundException)、asset 資源找不到,jar或so找不到的情況就請參考 【Android】Eclipse引用 library 時的常見異常
  • Activity 報 java.lang.NoClassDefFoundError: *.Activity 異常,通常是因為這個 AAR 裡的 Activity 繼承或實現了其它 AAR 中的類或介面,但是你沒有匯入 AAR 需要的依賴,導致運行時 AAR 裡的 Activity 無法執行個體化,解決辦法就是匯入全部需要的依賴,具體需要什麼依賴你就自己找到AAR的pom檔案查看或者反編譯相應出錯的類查看

Android 官方提供的 ADT 外掛程式在引用 library 項目時看似很美好,但有很多坑

1.不會自動合并 library 中的 asset 資源

ADT外掛程式並不會自動將 library 裡的 asset 資源合并到你的項目中,因此你需要手動拷貝

2.不會自動合并 library 中的 AndroidManifest 檔案

如果你引用的 library 中包含有四大組件,在不做任何額外配置的情況下你永遠也啟動不了 library 中包含的四大組件(例如啟動activit時拋ActivityNotFoundException),因為需要你在你的項目的project.properties檔案中配置一下ADT才會合并 library 中的 AndroidManifest檔案,如下:
manifestmerger.enabled=true
此屬性需要 ADT 17 以上版本

3.不會自動匯入 library 中 libs 目錄下的 jar 包 或 so 檔案

解決這個問題只需升級 ADT 到 17 以上版本即可

雖說現在大部分都是用 Android Studio 開發 Android 了,但還是有部分人使用 Eclipse
的,比如大部分的遊戲開發人員在整合一些第三方 SDK 的時候主要還是用的 Eclipse,所以這些問題還是有記錄價值的

 
浮遊大蝦
連結:https://www.jianshu.com/p/ccf306e08d5b
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

 

【轉】【Android】1分鐘不用改任何代碼在Eclipse中使用AAR

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.