Android引用库冲突解决

1、定位问题,当没有具体的错误信息时,很有可能是冲突导致的,我们可以在AndroidStudio自带的terminal里输入如下命令查看详细错误信息

windows电脑下命令:gradlew  assembleDebug  --stacktrace

 mac电脑下命令:./gradlew  assembleDebug  --stacktrace

如果命令报错,可参考这篇文章Mac AndroidStudio执行 gradle assembleDebug --stacktrace 报出 bash: gradlew: command not found_奈何若何的博客-CSDN博客

2、如果是依赖库版本不一致冲突,改为一致即可,一般是以高版本的为主

3、如果是依赖重复冲突,可通过下面(4、5)两种方法尝试解决

当然也可以通过替换包来解决(适用于引入的两个包都是同一第三方的)比如接入了腾讯的视屏播放,又接入了腾讯其他的功能比如这两个包 LiteAVSDK_Player_5.4.6097和com.tencent.liteav:LiteAVSDK_TRTC,一起引入就会有冲突,这个时候只需要将这两个引用替换成 LiteAVSDK_Professional_9.4.10921即可

4、如果项目 通过本地 AAR 依赖有冲突,可以尝试将 aar 以 Module 的方式添加到工程中

5、如果项目 通过 Maven 仓库依赖 有冲突,可以使用 exclude 去掉冲突部分

  去掉依赖库中的某个冲突包,如下
  去掉 module 引用的 'com.tencent.liteav:LiteAVSDK_TRTC'的相关内容,如下
  implementation(project(':tempLibrary')) {
       exclude group: 'com.tencent.liteav:LiteAVSDK_TRTC', module: 'LiteAVSDK_TRTC'
   }
 
  去掉依赖库中的某个冲突包,如下
  compile ('com.github.MagicMashRoom:SuperCalendar:1.6'){
        exclude group: 'com.android.support'
  }

你可能感兴趣的:(Android引用库冲突解决)