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

 更新时间:2018年12月13日 09:31:03   作者:franksight  
今天小编就为大家分享一篇关于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越界引起。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Androd自定义对话框Dialog视图及参数传递的实现方法

    Androd自定义对话框Dialog视图及参数传递的实现方法

    这篇文章主要介绍了Androd自定义对话框Dialog视图及参数传递的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-01-01
  • Android中仿IOS提示框的实现方法

    Android中仿IOS提示框的实现方法

    下面小编就为大家分享一篇Android中仿IOS提示框的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • Android 实现电话拦截及拦截提示音功能的开发

    Android 实现电话拦截及拦截提示音功能的开发

    本文主要介绍Android 实现电话拦截和拦截提示音功能的开发,这里提供实现代码和详细讲解,有需要的小伙伴可以参考下
    2016-08-08
  • XListView实现多条目网络数据刷新加载 网络加载图片

    XListView实现多条目网络数据刷新加载 网络加载图片

    这篇文章主要为大家详细介绍了XListView实现多条目网络数据刷新加载,网络加载图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Android利用SurfaceView实现下雨的天气动画效果

    Android利用SurfaceView实现下雨的天气动画效果

    这篇文章主要介绍了Android利用SurfaceView实现下雨天气效果的相关资料,文中详细介绍 SurfaceView 和 View 的区别,以及一些需要使用到 SurfaceView 的场景。需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • Android拍照上传功能示例代码

    Android拍照上传功能示例代码

    这篇文章主要介绍了Android拍照上传功能用法,结合实例形式详细分析了Android拍照上传功能所涉及的相关知识点与功能实现技巧,需要的朋友可以参考下
    2016-08-08
  • Android使用Retrofit仿微信多张图片拍照上传

    Android使用Retrofit仿微信多张图片拍照上传

    这篇文章主要介绍了Android使用Retrofit仿微信多张图片拍照上传的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Android获取经纬度计算距离介绍

    Android获取经纬度计算距离介绍

    Android提供LocationManager和Location,可以方便的获得经纬度、海拔等位置。使用LocationManager来获得位置管理类,从而可以获得历史GPS信息以及位置变化的监听注册;使用Location来获得具体的位置信息
    2014-01-01
  • Android上传文件到服务端并显示进度条

    Android上传文件到服务端并显示进度条

    这篇文章主要为大家详细介绍了Android上传文件到服务端,并显示进度条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 浅析Android.mk

    浅析Android.mk

    Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。要掌握jni,就必须熟练掌握Android.mk的语法规范
    2016-01-01

最新评论