android开发aar包或者jar包出现类重复问题Caused by: java.lang.RuntimeException: Duplicate class found in modules xxx.aar and xxx.aar终极解决方法

  1. 如果是仓库依赖的方式直接使用exclude语句移除相同的依赖库即可,如下:
implementation("org.java-websocket:Java-WebSocket:1.5.2") {
  exclude group: 'org.slf4j', module: 'slf4j-api'  //exclude掉websocket库依赖的slf4j库
}
  1. 但是如果是aar包或者jar包里面的类重复呢?这个情况是没方法直接exclude掉的吧?,这个情况也是有解决方法的,如下:
    2.1)方法一:解压aar或者jar包,删除掉其中重复的类,然后压缩回来。aar包或者jar包本是也是zip包,当作zip包解压缩处理即可。
    2.2)方法二:想方法将jar包或者aar转为类似仓库依赖的方式依赖进来,这个其实Android studio高版本已经硬性要求这个依赖aar包了。配置方式如下:
//第一步,创建模块
--moduleSDK  //创建app同级别的目录,随便一个名称,下面放在一个build.gradle文件和自己的aar包
  --build.gradle
  --module.aar

//第二步,在settings.gradle文件配置,依赖moduleSDK模块
include ':moduleSDK'

//第三步,项目里使用该依赖库moduleSDK
implementation project(':moduleSDK')

//第四步,编写moduleSDK模块下的build.gradle文件,内容类似如下:
configurations.maybeCreate("default")
artifacts.add("default",file("module.aar"))  //module.aar就是你的moduleSDK目录下的aar包
  1. 还有一种方法就是改为本地仓库依赖,配置本地仓库依赖如下:
  libs文件夹下的目录:
    libs/com/ali/phoneNumber-authSDK/2.13.2.1/phoneNumber-authSDK-2.13.2.1.aar
    libs/com/ali/phoneNumber-authSDK/2.13.2.1/phoneNumber-authSDK-2.13.2.1.pom
  
  项目根目录下gralde配置:
    maven { // 添加本地仓库目录
       url "file://${rootProject.projectDir.absolutePath}/libs"
    }
  app目录下的gralde配置:
    implementation "com.ali:phoneNumber-authSDK:2.13.2.1"
posted @   yongfengnice  阅读(1606)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2022-12-01 android开发Duplicate class编译出现类重复问题的定位以及解决方法
点击右上角即可分享
微信分享提示