Android引包出现Duplicate class com.xxx.xxx found in modules错误

2023-05-16

方法一:改依赖库的版本

其实就是依赖的包版本不一样,产生了冲突,把所有依赖的库改成版本一致的就可以了

注意:如果有多个library的引用,并且各自引入了 so库文件,编译时发生了so重复引入的问题,可以去掉其中一个分支的so文件的编译。

方法二:exclude aar中的jar包

场景一

要移除的jar包不在aar包中的classes.jar中
直接把aar包里的Jar打包的时候给去掉,就像下面这这样。注意,要使用exclude module这种方式,直接使用exclude group方式没有效果。exclude group的方法适用于exclude JAR包中的文件。

    implementation(name: '×××××××aar包', ext: 'aar') {
        exclude module: 'gson'
    }

场景二

要移除的jar包在aar包中的classes.jar中
这个时候,使用exclude方法已经不能生效了。你可以使用下面的通用方法,jar包也是这么处理

解压aar文件到tmpDir目录下
unzip ×××.aar -d tmpDir
找到classes.jar包,用压缩工具打开,删除目标文件
将tmpDir重新打包成一个新的aar
jar cvf ×××NewLib.aar -C tmpDir/ .
**补充:**我在Ubuntu下直接使用压缩工具打开aar包,然后删除其中的重复的文件,这个方法也是可行的。

方法三:compileOnly,只编译不打包

这个方法只能解决编译打包的问题,但是项目也无法调用该依赖中的资源,如果调用,会报错。 

参考:

Android引包出现Duplicate class com.xxx.xxx found in modules错误_哎吆我呸的博客-CSDN博客

gradle 几种依赖命令及文件冲突或包冲突_lfz2738942的博客-CSDN博客_gradle 依赖命令

Android Studio 引入Jar包,Jar包冲突问题总结_code豆腐的博客-CSDN博客 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android引包出现Duplicate class com.xxx.xxx found in modules错误 的相关文章

随机推荐

  • 如何用r语言分析数据

    如果要使用 R 语言分析数据 xff0c 通常需要以下步骤 xff1a 导入数据 xff1a 可以从多种格式的数据文件 如 CSV xff0c Excel 等 中导入数据 xff0c 并将其存储为 R 中的数据框 data frame 数据
  • matlab二维正弦曲线

    matlab二维正弦曲线 X span class token operator 61 span span class token number 30 span span class token punctuation span A spa
  • python 编写一段自动下载微信群的聊天记录中的图片并保存到本地的代码

    以下是一段简单的 Python 代码 xff0c 可以自动下载微信群聊天记录中的图片并保存到本地 xff1a span class hljs keyword import span requests def download image u
  • 用Python写一段猜拳代码

    好的 这是一段简单的猜拳代码 span class hljs keyword import span random span class hljs built in print span span class hljs string 石头剪
  • ubuntu16.04升级到18.04

    要将 Ubuntu 16 04 升级到 18 04 xff0c 可以按照以下步骤操作 xff1a 在终端中运行以下命令 xff0c 确保系统已经更新到最新版本 xff1a sudo apt update sudo apt upgrade 接
  • 如何使用rust实现C语言编译器

    要使用 Rust 实现 C 语言编译器 xff0c 你可以遵循以下步骤 xff1a 学习 Rust 语言的语法和特性 xff0c 以便能够编写 Rust 代码 学习编译器的基本原理和 C 语言的语法和语义 xff0c 以便能够将 C 代码翻
  • docker安装redis并进行数据目录挂载

    从dockerHub拉取镜像到本地 docker pull redis 5 0 9 alpine3 11 创建目录 宿主机 mkdir p opt docker redis conf mkdir p opt docker redis dat
  • uwsgi: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No su

    span class token comment 找到缺少文件的绝对路径 span find span class token operator span span class token operator span name libssl
  • Linux 出现 Read-only file system 怎么处理

    如果你的 Linux 系统出现 34 Read only file system 34 的错误消息 xff0c 这意味着你的文件系统被设置为只读 xff0c 无法进行写操作 这可能是由于磁盘空间不足 文件系统损坏或磁盘 I O 错误导致的
  • windows和linux共用蓝牙鼠标,Ubuntu和Windows双系统蓝牙设备共享配对

    蓝牙设备如键盘 鼠标都可以 装的双系统win7和Ubuntu xff0c 如果只使用一个系统 xff0c 蓝牙鼠标配对一次后可以正常使用 xff0c 但如果下次进的另一个系统必须要重新配对才能使用 所以这篇文章就是解决这个问题的 xff0c
  • python类的实例化

    在 Python 中 xff0c 类的实例化是通过在类名后面加上圆括号的方式来创建一个类的实例 例如 xff0c 如果有一个名为 34 MyClass 34 的类 xff0c 可以通过如下方式创建一个该类的实例 xff1a span cla
  • 如何提取abaqus的位移和其坐标

    坐标 每次在 Abaqus 中运行作业时 xff0c 都会在工作文件夹中创建一个 job name INP 文件 该文件包含节点编号和原始坐标 xff0c 如附图所示 INP 文件可以用任何文本编辑器 xff08 word notepad
  • C语言怎么打印出枚举类型

    在 C 语言中 xff0c 你可以使用 printf 函数来打印枚举类型 首先 xff0c 你需要在枚举类型定义的时候为每一个枚举值赋予一个字符串的别名 xff1a span class hljs built in enum span sp
  • Android android_id, deviceId, oaid的区别

    一 ANDROID ID 1 ANDROID ID是设备首次启动时由系统随机生成的一串64位的十六进制数字 2 获取方式 String ANDROID ID span class token operator 61 span Setting
  • Android设备唯一标识(AndroidID,OAID等 )

    一 ID 体系 xff1a 你只是一串代码 想要了解 OAID xff0c 我们首先需要明白 ID 体系 xff1a 想要追踪一个用户就必须先找到用户 xff0c 在这个过程中 xff0c 标识符 xff08 ID xff09 就像我们的另
  • 如何使用tkinter中的pack使按钮在主窗体正中间

    使用pack 方法可以将按钮放置在主窗体正中间 xff0c 可以使用以下代码 xff1a btn pack expand 61 True fill 61 39 both 39 xff0c 其中expand 61 True表示按钮可以填充整个
  • python实例化的几种表示方式

    Python 中实例化的几种表示方式包括 通过类名直接实例化 如果定义了一个类 34 Person 34 可以使用 34 person 61 Person 34 来实例化该类 通过 super 函数实例化 可以使用 super 函数来实例化
  • 查看git项目工程的地址

    1 xff0c cmd控制台输入 git remote v 命令 首先 xff0c 进入到项目工程目录 xff1a 其次 xff0c 从该目录地址中 xff0c 进入cmd控制台 xff1a 然后 xff0c 输入git remote v
  • 使用Android Studio打包生成Jar包的方法(亲测可用)

    首先我们来说下打成jar包的分类 xff1a 1 application应用打成jar包 2 内库打成jar包 不管是那种打包jar包都得变成内库 xff0c 所以当一种方法讲解了 打jar包之前得让你的项目成内库 xff1a 如何变成内库
  • Android引包出现Duplicate class com.xxx.xxx found in modules错误

    方法一 xff1a 改依赖库的版本 其实就是依赖的包版本不一样 xff0c 产生了冲突 xff0c 把所有依赖的库改成版本一致的就可以了 注意 xff1a 如果有多个library的引用 xff0c 并且各自引入了 so库文件 xff0c