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项目
建立Android项目,如果会的话特别简单,不会的话让自己去琢磨也需要一定的时间!小编之后将自己学习Android的经验给大家分享出来! 1.对于环境,小编不在这里赘诉,使用自己学习Java时的环境,再下载一个adt-bundle就可以了! 2.下载好adt-bundle,并且解压之后就是上面图片的目录,我们直接打开[eclipse]文件夹,然后双击运行[eclipse.exe]就可以打开我们需要的环境了! 3.打开之后,我们点击菜单栏中的[File],然后点选[New]---[Android
-
取消Android Studio项目与SVN关联的方法
在使用SVN过程中可能有时因为一些原因,不想再使用SVN了,我们想取消与SVN的关联,让Android项目恢复到原始状态,不想有哪些花花绿绿的颜色了,怎么办呢,操作起来很简单 把Android Studio切换到Project模式,有个.idea文件夹,在该文件夹下找到vcs.xml文件,打开该文件,把里面的内容替换成如下代码即可. <?xml version="1.0" encoding="UTF-8"?> <project version=&q
-
Eclipse运行android项目报错Unable to build: the file dx.jar was not loaded from the SDK folder的解决办法
由于最近通过SDK-Manager更新了build-tools,当要用到dx.jar这个包时,自动调用最新build-tools中dx.jar,但是运行Android项目时Console却提示: Failed to load C:\Program Files (x86)\android\android-sdk\build-tools\26.0.0-preview\lib\dx.jar Unable to build: the file dx.jar was not loaded from the
-
Android发布项目到jitpack的完整步骤
前提 最近因公司需要写了一个sdk,本想用本地库去做,但是遇到了各种问题,所以尝试着做成网络库去接入.之前一直没接触过这块,相对来说挺简单,但是也遇到了一些问题,在这里记录一下. 首先 在开始之前先简单说一下流程: 1.在本地创建一个libiary工具类: 2.配置JitPack相关的配置信息: 3.排查自己工具类中的错误并上传到github: 4.创建release并在JitPack中编译: 5.在自己的项目中引用. 其次 1. 创建一个libiary,然后上传到github(只需要上传图中红
-
Android studio删除Android项目方法
Android studio开发工具中,如何如何删除Android项目,下面是在Android studio 1.5正式版删除Android项目的操作步骤. 1.选择单击"开始"--单击运行Android Studio. 2.单击file菜单--close project关闭项目 3.选中按delete键删除Android项目. 4.单击file菜单--project structure项目结构 5.弹出project structure对话窗口,选择modules模块 6.单击那个减
-
详解androidstudio项目上传到github方法以及步骤
1.两个相关概念:Git和github Git是一个开源的分布式 版本控制 系统,用以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件.分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库. github作为开源代码库以及版本控制系统,它是一个网站,给用户提供git服务.这样你就不用自己部署git系统直接注册
-
Android Studio发布项目到Jcenter仓库步骤(图文)
前言:Android Studio中把项目的lib库提交到Jcenter仓库中,需要使用到Bintray,Bintray是jCenter的提供商,他支持上传lib到多个平台,jCenter只是众多平台中的一个,形象的说jCenter是位于某地的仓库,Bintray是送货的卡车,你写的库就是货了. 第一部分:在Bintray上注册账号,并创建package. 注册bintray ,注意:注册时尽量使用国外的邮箱,避免接收不到验证码.例如我使用雅虎邮箱. 完成注册之后,登录网站,然后点击maven
-
Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法
在安卓开发导入项目过程中,出现错误再所难免.最近导入项目就遇到如下错误,具体如下图所示. 出现如上错误,最初设想先看下项目能不能运行.经尝试可以完美的在windows系统上运行(虽然会出现如上的错误警告).项目虽然在报警告的情况下,能在windows系统上运行,但一般Android项目都是基于Windows和OS X系统开发.于是猜想项目能不能同样在OS X系统上运行呢?结果发现不能,必须要把这些错误警告解决才行. 最初根据上图提示认为可能是对应的第三方jar包的问题.于是,分别替换了对应的第三
-
android studio 3.6.1导入项目报错提示无法下载classpath里的内容
报错: Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all artifacts for configuration ':classpath'. 原因: 百度说是无法下载classpath里的内容,具体不是很清楚 解决方法: 百度到了很多方法,单个尝试都解决不了,然后把解决方法结合 在bu
-
Android开发中Eclipse报错及对应处理方法总结
本文较为详细的总结了Android开发中Eclipse报错及对应处理方法.分享给大家供大家参考,具体如下: 报错1: Conversion to Dalvik format failed with error 1 报错原因:原因是我在android工程中不小心多导入Java的mina,结果一跑程序就报这个错误. 解决方法:将Java中用到的mina包移除,就OK了. 小结:以后遇到这种报错时,记得提醒自己可能是由于自己导错包了. 附: 网上其他处理方法:<丢失Android系统库或者Conver
-
android studio 新建项目报错的解决之路
android studio 新建工程报错 Error:Could not resolve all files for configuration ':app:debugCompileClasspath'. > Could not resolve com.android.support:appcompat-v7:26.0.0-beta1. Required by: project :app > Could not resolve com.android.support:a
-
VSCode报错:Vetur can't find 'tsconfig.json' or 'jsconfig.json'解决办法
目录 原因 说明 解决方法(3选1) 总结 原因 Vetur 0.31.0版本新增了一个vetur.config.js的配置文件, 在这个版本之后,会优先查找项目中是否配有tsconfig.json(ts项目)或者jsconfig.json(js项目), 没找到这2个文件就去找vetur.config.js,如果都没有,就会抛出这个提示. 说明 VSCode的JavaScript支持可以在两种不同的模式下运行: 文件范围(没有jsconfig.json) 在此模式下,在VSCode中打开的Jav
-
Eclipse导入项目报错问题解决方案
使用eclipse导入一些项目是会出现项目前有叉号的问题 总结一下解决方法: 1.修改自己的Build Path,右键项目名: 在Java build path界面将sever及jre将原有的Tomcat及jre remove之后替换成自己版本: 2.替换后如果继续报错 找到项目根目录,修改.setting目录下的org.eclipse.wst.common.project.facet.core.xml文件 将里面的版本号修改成自己的即可 3.在之前的项目中完成上面两步已经可以解决项目名报错的问
-
IntelliJ IDEA报错Error:java: Compilation failed: internal java compiler error的解决办法
报错内容: Information:Using javac 1.8.0_73 to compile java sources Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8 Information:java: Errors occurred while compiling module 'EZSonar' Information:Module "EZSonar" was fully rebuilt due to project con
-
Eclipse新建Android项目报错解决方案详细汇总
本文记录刚接触Android开发搭建环境后新建工程各种可能的报错,并亲身经历漫长的解决过程(╥╯^╰╥),寻找各种偏方,避免大家采坑,希望能帮助到大家. 出错一:The import android.support cannot be resolved类型解决 如图,如果报The import android.support cannot be resolved或者android.support.v7.app.ActionBarActivity类似的错误. 解决方案一 :缺少相关依赖包,这里提供
-
eclipse导入appcompat项目报错解决办法
eclipse导入appcompat项目报错解决办法 我们在eclipse导入开源项目后,经常会发现找不到类似Theme.AppCompat.Light.DarkActionBar的style,解决办法也比较简单,就是导入com.android.support:appcompat-v7包,不过又两点需要注意: 不能只导入appcompat-v7.jar包,而是要导入appcompat-v7项目 因为这个项目包含有资源文件,只导入jar包没有效果,这个项目地址是在: -\android-sdk\e
-
Android Studio三方引用报错但是项目可以运行的解决方案
Android Studio第一次启动的Fetching android sdk component information的问题 1)进入刚安装的Android Studio目录下的bin目录.找到idea.properties文件,用文本编辑器打开. 2)在idea.properties文件末尾添加一行: disable.android.first.run=true ,然后保存文件. 3)关闭Android Studio后重新启动,便可进入界面. Android Studio 三方引用报错
随机推荐
- IOS 中UIImageView响应点击事件
- 配置IP地址的批处理代码
- angularJS 指令封装回到顶部示例详解
- iOS开发中最基本的位置功能实现示例
- Swift下使用UICollectionView 实现长按拖拽功能
- Docker 网络命令详解
- Ajax请求中async:false/true的作用分析
- 超强文章
- node.js [superAgent] 请求使用示例
- Oracle插入日期数据常见的2个问题和解决方法
- jQuery中的siblings()是什么意思(推荐)
- jquery实现图片平滑滚动详解
- win2003 https 网站的图文配置教程
- JavaScript触发器详解
- 札记:android手势识别功能实现(利用MotionEvent)
- Catalyst5500交换机 VLAN设置
- Go语言学习技巧之如何合理使用Pool
- MongoDB中的参数限制与阀值详析
- vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
- vue滚动固定顶部及修改样式的实例代码