新聞中心
小編給大家分享一下Android開(kāi)發(fā)導(dǎo)入項(xiàng)目報(bào)錯(cuò)Ignoring InnerClasses attribute for an anonymous inner class怎么辦,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)專業(yè)提供內(nèi)江服務(wù)器托管服務(wù),為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購(gòu)買內(nèi)江服務(wù)器托管服務(wù),并享受7*24小時(shí)金牌售后服務(wù)。
在安卓開(kāi)發(fā)導(dǎo)入項(xiàng)目過(guò)程中,出現(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)開(kāi)發(fā)。于是猜想項(xiàng)目能不能同樣在OS X系統(tǒng)上運(yùn)行呢?結(jié)果發(fā)現(xiàn)不能,必須要把這些錯(cuò)誤警告解決才行。
最初根據(jù)上圖提示認(rèn)為可能是對(duì)應(yīng)的第三方j(luò)ar包的問(wèn)題。于是,分別替換了對(duì)應(yīng)的第三方j(luò)ar包。替換后,發(fā)現(xiàn)還是出現(xiàn)相同的問(wèn)題。由此jar包問(wèn)題被排除。經(jīng)查找相應(yīng)的資料說(shuō)添加如下代碼能解決這個(gè)錯(cuò)誤警告,報(bào)著半信半疑的態(tài)度開(kā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,超過(guò)上限號(hào)稱應(yīng)用爆棚),由此猜想會(huì)不會(huì)是Dex的方法數(shù)超過(guò)上限呢?同樣報(bào)著試試的態(tài)度,在項(xiàng)目的build.gradle文件中添加multiDexEnabled true代碼(解釋:設(shè)置多Dex
可用)。
其具體情況如下圖所示
再次重構(gòu)項(xiàng)目,運(yùn)行,出現(xiàn)如下結(jié)果
由此項(xiàng)目可以在Windows上無(wú)錯(cuò)誤運(yùn)行,再次將項(xiàng)目導(dǎo)入Mac上,完美運(yùn)行。Ignoring InnerClasses attribute for an anonymous inner class
問(wèn)題解決就介紹到此。
下面做下簡(jiǎn)單的小結(jié):
(1) 第一考慮是不是可以直接忽略第三方的屬性的錯(cuò)誤警告,由此層層遞進(jìn)發(fā)現(xiàn)問(wèn)題。
(2) 出現(xiàn)Ignoring InnerClasses attribute for an anonymous inner class問(wèn)題一般是第三方j(luò)ar的問(wèn)題引起的可能性很小,首先考慮是不是Dex越界問(wèn)題。
(3) 將keepattributes EnclosingMethod去除,再次重構(gòu)發(fā)現(xiàn)也不會(huì)出現(xiàn)Ignoring InnerClasses attribute for an anonymous inner class問(wèn)題,由此進(jìn)一步推斷主要是Dex越界問(wèn)題引起Ignoring InnerClasses attribute for an anonymous inner class問(wèn)題。如果導(dǎo)入項(xiàng)目遇到類似問(wèn)題首先判斷是否是Dex越界引起。
以上是“Android開(kāi)發(fā)導(dǎo)入項(xiàng)目報(bào)錯(cuò)Ignoring InnerClasses attribute for an anonymous inner class怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當(dāng)前名稱:Android開(kāi)發(fā)導(dǎo)入項(xiàng)目報(bào)錯(cuò)IgnoringInnerClassesattributeforananonymousinnerclass怎么辦
分享路徑:http://fisionsoft.com.cn/article/pijedj.html