Android開發(fā)導(dǎo)入項(xiàng)目報(bào)錯(cuò)Ignoring InnerClasses attribute for an anonymous inner class的解決辦法
在安卓開發(fā)導(dǎo)入項(xiàng)目過程中,出現(xiàn)錯(cuò)誤再所難免。最近導(dǎo)入項(xiàng)目就遇到如下錯(cuò)誤,具體如下圖所示。

出現(xiàn)如上錯(cuò)誤,最初設(shè)想先看下項(xiàng)目能不能運(yùn)行。經(jīng)嘗試可以完美的在windows系統(tǒng)上運(yùn)行(雖然會(huì)出現(xiàn)如上的錯(cuò)誤警告)。項(xiàng)目雖然在報(bào)警告的情況下,能在windows系統(tǒng)上運(yùn)行,但一般Android項(xiàng)目都是基于Windows和OS X系統(tǒng)開發(fā)。于是猜想項(xiàng)目能不能同樣在OS X系統(tǒng)上運(yùn)行呢?結(jié)果發(fā)現(xiàn)不能,必須要把這些錯(cuò)誤警告解決才行。
最初根據(jù)上圖提示認(rèn)為可能是對(duì)應(yīng)的第三方j(luò)ar包的問題。于是,分別替換了對(duì)應(yīng)的第三方j(luò)ar包。替換后,發(fā)現(xiàn)還是出現(xiàn)相同的問題。由此jar包問題被排除。經(jīng)查找相應(yīng)的資料說添加如下代碼能解決這個(gè)錯(cuò)誤警告,報(bào)著半信半疑的態(tài)度開始試試。
找到項(xiàng)目下對(duì)應(yīng)的proguard-rules.pro文件。如下圖所示。

在proguard-rules.pro文件中添加如下代碼(解釋:忽略內(nèi)部類的一些屬性)。
-keepattributes EnclosingMethod
再次重新構(gòu)建項(xiàng)目,運(yùn)行發(fā)現(xiàn)然并卵。再次查找相關(guān)資料,資料顯示每個(gè)項(xiàng)目的Dex都有方法數(shù)的限制(上限65536,超過上限號(hào)稱應(yīng)用爆棚),由此猜想會(huì)不會(huì)是Dex的方法數(shù)超過上限呢?同樣報(bào)著試試的態(tài)度,在項(xiàng)目的build.gradle文件中添加multiDexEnabled true代碼(解釋:設(shè)置多Dex可用)。
其具體情況如下圖所示

再次重構(gòu)項(xiàng)目,運(yùn)行,出現(xiàn)如下結(jié)果

由此項(xiàng)目可以在Windows上無錯(cuò)誤運(yùn)行,再次將項(xiàng)目導(dǎo)入Mac上,完美運(yùn)行。Ignoring InnerClasses attribute for an anonymous inner class問題解決就介紹到此。
下面做下簡單的小結(jié):
(1) 第一考慮是不是可以直接忽略第三方的屬性的錯(cuò)誤警告,由此層層遞進(jìn)發(fā)現(xiàn)問題。
(2) 出現(xiàn)Ignoring InnerClasses attribute for an anonymous inner class問題一般是第三方j(luò)ar的問題引起的可能性很小,首先考慮是不是Dex越界問題。
(3) 將keepattributes EnclosingMethod去除,再次重構(gòu)發(fā)現(xiàn)也不會(huì)出現(xiàn)Ignoring InnerClasses attribute for an anonymous inner class問題,由此進(jìn)一步推斷主要是Dex越界問題引起Ignoring InnerClasses attribute for an anonymous inner class問題。如果導(dǎo)入項(xiàng)目遇到類似問題首先判斷是否是Dex越界引起。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- Android發(fā)布項(xiàng)目到j(luò)itpack的完整步驟
- 詳解androidstudio項(xiàng)目上傳到github方法以及步驟
- Android studio刪除Android項(xiàng)目方法
- 取消Android Studio項(xiàng)目與SVN關(guān)聯(lián)的方法
- Eclipse運(yùn)行android項(xiàng)目報(bào)錯(cuò)Unable to build: the file dx.jar was not loaded from the SDK folder的解決辦法
- Android Studio發(fā)布項(xiàng)目到Jcenter倉庫步驟(圖文)
- 實(shí)例講解建立Android項(xiàng)目
相關(guān)文章
Android獲取應(yīng)用程序名稱(ApplicationName)示例
本文以實(shí)例方式為大家介紹下獲取應(yīng)用程序名稱(ApplicationName)的具體實(shí)現(xiàn),感興趣的各位可以參考下哈2013-06-06
Android使用TabLayou+fragment+viewpager實(shí)現(xiàn)滑動(dòng)切換頁面效果
這篇文章主要介紹了Android使用TabLayou+fragment+viewpager實(shí)現(xiàn)滑動(dòng)切換頁面效果,需要的朋友可以參考下2017-05-05
Android模擬器接收UDP數(shù)據(jù)包的若干問題分析
這篇文章主要介紹了Android模擬器接收UDP數(shù)據(jù)包的若干問題,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android模擬器接收UDP數(shù)據(jù)的使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-04-04
Android RecyclerView 上拉加載更多及下拉刷新功能的實(shí)現(xiàn)方法
這篇文章主要介紹了Android RecyclerView 上拉加載更多及下拉刷新的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
Android?實(shí)例代碼帶你掌握FrameLayout
FrameLayout是Android開發(fā)中非常常見的布局組件,并且它不單單是一個(gè)幀布局組件,可以用它實(shí)現(xiàn)多種功能,感興趣的朋友一起來看看吧2022-03-03
Android可自定義垂直循環(huán)滾動(dòng)布局
這篇文章主要為大家詳細(xì)介紹了Android可自定義垂直循環(huán)滾動(dòng)布局,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
Android 線程優(yōu)化知識(shí)點(diǎn)學(xué)習(xí)
這篇文章主要為大家介紹了Android線程優(yōu)化知識(shí)點(diǎn)學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

