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

发布时间 2023-12-01 14:34:23作者: yongfengnice
  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包