【Android】Gradle build(高版本到低版本)遇到的错误总结

2024-04-21 20:18

本文主要是介绍【Android】Gradle build(高版本到低版本)遇到的错误总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

把跑通的项目换了一个设备运行,竟然一下出了458个error(s).....新手遇到这个不知道如何是好 _(:3 」∠)_

从第一个error开始是Error:warning: Ignoring InnerClasses attribute for an anonymous inner class


前辈们给出了建议:
第一步:修改Gradle配置文件,启用MultiDex并包含MultiDex支持:

defaultConfig {multiDexEnabled true
}dependencies { compile 'com.Android.support:multidex:1.0.1' }

第二步:让应用支持多DEX文件。在MultiDexApplication JavaDoc中提供了三种可选方法:

a、在AndroidManifest.xml的application中声明android.support.multidex.MultiDexApplication;

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.android.multidex.myapplication"><application...android:name="android.support.multidex.MultiDexApplication">...</application>
</manifest>

b、如果你已经有自己的Application类,让其继承MultiDexApplication;

c、如果你的Application类已经继承自其它类,你不想修改它,那么可以重写attachBaseContext()方法:

@Override   protected void attachBaseContext(Context base) {  super.attachBaseContext(base); MultiDex.install(this);  }  

 

但是第一步我就会报错,一直不能引入这个support 包,后来发现是因为Android plugin Gradle版本低于1.1,解决办法是添加 以下依赖 multidex-instrumentation :

dependencies {androidTestCompile('com.android.support:multidex-instrumentation:1.0.1') {exclude group: 'com.android.support', module: 'multidex'}
}
第二步三种方法都尝试了因为报错未成功,但此时error已经减少到了1个
还有一个是Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/gson/JsonNull.class
出现这问题有可能是api的版本太低和缓存问题,我clean了一个工程还是这样。。
嗯,File-Settings-Apprearance&Beheavior-System Settings-Android SDK升级一下SDK的版本。并没有什么用。。。还是5个(┬_┬)
然后检查了一下Module Settings里面的Version都匹配。。
最后我检查了color.xml和style.xml里的引用方法都没有错。。。这是为什么啊啊啊?
原来是常见的jar包冲突。。可以下一个jar包冲突检测工具(百度直接就有),我检测了没有完全重复的冲突。
再试一个办法,用ctrl+N然后检测Jsonnull(错误信息中提示的class)发现了两个冲突的类,把其中一个删掉就可以啦~~开心(>▽<)

这篇关于【Android】Gradle build(高版本到低版本)遇到的错误总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/923943

相关文章

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

SpringBoot3匹配Mybatis3的错误与解决方案

《SpringBoot3匹配Mybatis3的错误与解决方案》文章指出SpringBoot3与MyBatis3兼容性问题,因未更新MyBatis-Plus依赖至SpringBoot3专用坐标,导致类冲... 目录SpringBoot3匹配MyBATis3的错误与解决mybatis在SpringBoot3如果

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按