Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法
在安卓开发导入项目过程中,出现错误再所难免。最近导入项目就遇到如下错误,具体如下图所示。
出现如上错误,最初设想先看下项目能不能运行。经尝试可以完美的在windows系统上运行(虽然会出现如上的错误警告)。项目虽然在报警告的情况下,能在windows系统上运行,但一般android项目都是基于windows和os x系统开发。于是猜想项目能不能同样在os x系统上运行呢?结果发现不能,必须要把这些错误警告解决才行。
最初根据上图提示认为可能是对应的第三方jar包的问题。于是,分别替换了对应的第三方jar包。替换后,发现还是出现相同的问题。由此jar包问题被排除。经查找相应的资料说添加如下代码能解决这个错误警告,报着半信半疑的态度开始试试。
找到项目下对应的proguard-rules.pro
文件。如下图所示。
在proguard-rules.pro文件中添加如下代码(解释:忽略内部类的一些属性)。
-keepattributes enclosingmethod
再次重新构建项目,运行发现然并卵。再次查找相关资料,资料显示每个项目的dex都有方法数的限制(上限65536,超过上限号称应用爆棚),由此猜想会不会是dex的方法数超过上限呢?同样报着试试的态度,在项目的build.gradle文件中添加multidexenabled true代码(解释:设置多dex
可用)。
其具体情况如下图所示
再次重构项目,运行,出现如下结果
由此项目可以在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 Studio项目与SVN关联的方法
下一篇: 可可粉是什么大揭秘