Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法
作者:franksight 发布时间:2023-05-16 13:02:45
在安卓开发导入项目过程中,出现错误再所难免。最近导入项目就遇到如下错误,具体如下图所示。
出现如上错误,最初设想先看下项目能不能运行。经尝试可以完美的在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越界引起。
来源:https://blog.csdn.net/whj9073/article/details/72842674


猜你喜欢
- 本文较为详细的分析了vc提示unexpected end of file found的原因。分享给大家供大家参考。具体分析如下:预编译出错,
- Spring Cloud Gateway(以下简称 SCG)做为网关服务,是其他各服务对外中转站,通过 SCG 进行请求转发。在请求到达真正
- Toast是一种简易的消息提示框,它无法获取焦点,按设置的时间来显示完以后会自动消失,一般用于帮助或提示。先给大家分享下我的解决思路:不用计
- 一、背景新做了一个的需求,需要在SpringBoot项目中引入了多个依赖,然后就感觉idea下载依赖包的时间很漫长,然后我就网上找了解决办法
- 目录前沿快速开始引入依赖定义接口配置类开始调用json序列化接口层面指定header:指定Encoder跟Decoder使用 * 注解详解@
- 教你一步一步用 java 设计生成二维码在物联网的时代,二维码是个很重要的东西了,现在无论什么东西都要搞个二维码标志,唯恐落伍,就差人没有用
- 前言Spring的一个核心功能是IOC,就是将Bean初始化加载到容器中,Bean是如何加载到容器的,可以使用Spring注解方式或者Spr
- springboot结合maven配置不同环境的profile1、在spring-boot中新建配置文件spring-boot不同环境配置文
- RenderScript 介绍在开始之前,先看下 RenderScript 的官方介绍:RenderScript is a framewor
- 简单的页面分析在上一个文章简单的数据库连接测试,已经测试和数据库做简单的交互,也就是dao层的实现,接下来要说的却是action的简单实现,
- 序初涉江湖,还望海涵!写点东西,纯粹是因为个人的记忆能力较弱,写些笔记罢了,若有错误还望雅正!对Android中的时间获取做个记录,以下为结
- 在游戏开发中,主角需要通过跑地图来通关升级,本章主要介绍主角的移动和摄像跟随的操作。主角移动角色位移通过主角的骨骼动画控制(后续文章会详细介
- 前言Kotlin被Google官方认为是Android开发的一级编程语言。今天,我将主要讲解,关于Kotlin的一些实用语法糖,主要包括:范
- Android之ImageSwitcher的实例详解一. 简单示例实例代码:public class AndroidUIActivity e
- 一副扑克有54张牌:大小王+4*13,接下来我们来模拟一下斗地主的发牌过程首先,我们需要买牌,新买来的牌都是按顺序摆放的,因此下一步是洗牌,
- 目录源码使用源码@Target({ElementType.TYPE, ElementType.METHOD})@Retention(Rete
- 上一篇文章讲了如何获取所有联系人,这篇文章就讲下怎么保存联系人数据到本机通讯录。这里我就假设你已经拿到了要保存的联系人数据。 因为
- 一、File流概念 JAVA中针对文件的读写操作设置了一系列的流,其
- 此类的功能包括发送邮件,邮箱格式是否正确,和在不发送邮件的情况下判断邮箱用户名和密码是否正确,鉴于POP检查邮箱用户名和密码出现错误情况返回
- 问题?在很多公司(如阿里、华为等)的编程规范中,非常明确地禁止使用Executors快捷创建线程池,为什么呢?这里从源码讲起,介绍使用Exe