Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法

发布时间:2019-08-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

安卓开发导入项目过程中,出现错误再所难免。最近导入项目就遇到如下错误,具体如下图所示。

Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法

出现如上错误,最初设想先看下项目能不能运行。经尝试可以完美的在windows系统上运行(虽然会出现如上的错误警告)。项目虽然在报警告的情况下,能在windows系统上运行,但一般AndROId项目都是基于Windows和OS X系统开发。于是猜想项目能不能同样在OS X系统上运行呢?结果发现不能,必须要把这些错误警告解决才行。

最初根据上图提示认为可能是对应的第三方jar包的问题。于是,分别替换了对应的第三方jar包。替换后,发现还是出现相同的问题。由此jar包问题被排除。经查找相应的资料说添加如下代码能解决这个错误警告,报着信半疑的态度开始试试。

找到项目下对应的PRoGuard-rules.pro文件。如下图所示。

Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法

在Proguard-rules.pro文件中添加如下代码(解释:忽略内部类的一些属性)。

 -keepattributes EnclosingMethod

再次重新构建项目,运行发现然并卵。再次查找相关资料,资料显示每个项目的Dex都有方法数的限制(上限65536,超过上限号称应用爆棚),由此猜想会不会是Dex的方法数超过上限呢?同样报着试试的态度,在项目的build.gradle文件中添加multiDeXenabled true代码(解释:设置多Dex可用)。

其具体情况如下图所示

Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法

再次重构项目,运行,出现如下结果

Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法

由此项目可以在Windows上无错误运行,再次将项目导入Mac上,完美运行。Ignoring InnerClasses attribute for an anonymous inner class问题解决就介绍到此。

下面做下简单的小结:

(1) 第一考虑是不是可以直接忽略第三方的属性的错误警告,由此层层递进发现问题。

(2) 出现Ignoring InnerClasses attribute for an anonymous inner class问题一般是第三方jar的问题引起的可能性很小,首先考虑是不是Dex越界问题。

(3) 将keepattributes EnclosingMethod去除,再次重构发现也不会出现Ignoring InnerClasses attribute for an anonymous inner class问题,由此进一步推断主要是Dex越界问题引起Ignoring InnerClasses attribute for an anonymous inner class问题。如果导入项目遇到类似问题首先判断是否是Dex越界引起。

总结

android教程
脚本网站
android studio

脚本宝典总结

以上是脚本宝典为你收集整理的Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法全部内容,希望文章能够帮你解决Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。