安卓依赖冲突问题

查找历程

记录一下方便以后查阅

刚开始学安卓,依赖根本看不懂,但是在跟着做底部导航栏的时候,只要加navigation依赖就报错,加上依赖,重复依赖冲突,不加版本不兼容,依赖怎么看兼容?小白表示学基础根本不知道怎么回事,查官网,查资料一时能看明白一点,但是又不明白,一个星期问人,查资料,查官网各种解决方式

安卓studio,我的是最新版本,网上很多现成的例子我看不懂,所以生搬硬套的会出现更多错,一度觉得完了,所以开始到处找关于依赖的基础知识,但是看资料着实看不太明白,找视频基础明白了,但是报错?没找到专门教怎么解决错的,试过升级,试过统一版本,都不行

然后我找到一个经历相似的博主,但是人家能看懂,也是各种都试了行不通,所以最后彻底卸载重新安装,附上链接,但是我按照这个彻底卸载后不行,还是错,新建空白项目正常运行,只要是底部导航栏必报错

Android 常用依赖(不定期更新)_android文章目录官方[Jetpack](https://developer.android.google.cn/jetpack)常用三方框架SquareRetrofitOKHttp**leakcanary**RxjavaGlideGson我写的库ResultCallBackTools三方服务商SDK百度地图高德地图环信IM环信客服云Github 开源框架中文转拼音官方Jetpack导入:https:/..._android。依赖https://blog.csdn.net/XFhearrain/article/details/100944595?spm=1001.2014.3001.5506

完全卸载Android studio教程_android studio怎么卸载完全卸载Android studio教程一、前言此教程的实验对象包括Android Studio的多个版本,因而该教程具有较好的参考价值。即使你安装的Android Studio版本不同,卸载要点也应该是大同小异的,可以放心使用。二、准备工作—显示隐藏文件夹如果要完全卸载Android Studio,必须要将AppData中与Android Studio相关的信息全部删除,否则我们再次安装Android Studio时会受到残留信息的影响。而电脑磁盘默认将AppData文件夹设置为隐藏文件夹,所_android studio怎么卸载https://blog.csdn.net/qq_46941656/article/details/119918496?spm=1001.2014.3001.5506Android Studio检查依赖库是否有新版本,非常好用_android studio 依赖性 版本AS自带的Lint检查_android studio 依赖性 版本 linthttps://blog.csdn.net/yuzhiqiang_1993/article/details/93618428?spm=1001.2014.3001.5506Android依赖导入全攻略_net.grobas.view.movingimageview 导入依赖_在我们开发安卓项目的时候,不会所有的功能都自己去造轮子,经常要使用到各种的其他包,其中有谷歌给我们提供的各种support包,也有各种第三方的功能库,有时候我们自己也会将一些功能封装成包。这些包存在和导入的形式也多种多样,有远程仓库的,有直接拷贝到本地的,jar包、aar包、so包等。所幸我们都可以在主工程和各个Module的里进行统一管理。本文将在Android Studio3.0环境下来汇总下这些用法。_net.grobas.view.movingimageview 导入依赖https://blog.csdn.net/yihanss/article/details/127779529?spm=1001.2014.3001.5506安卓依赖冲突处理_c#中的结构体为值类型https://blog.csdn.net/qq_24448219/article/details/80565356?spm=1001.2014.3001.5506 解决 Android 依赖冲突(附六种解决办法)六个办法解决安卓依赖冲突问题_android 依赖冲突https://blog.csdn.net/lfq88/article/details/118222107?spm=1001.2014.3001.5506这是我觉得挺有用但是自己没用上的的一些关于依赖的

我的报错

加navigation时出现要加依赖,ok依赖重复

安卓依赖冲突问题_第1张图片

运行就报错,如果和我一样小白这个报错看都看不懂如何解决?

这个错误提示是关于重复的类(duplicate class)的问题。错误信息中列出了一些重复的类名和它们所在的模块。

在你的构建过程中,kotlin-stdlib-1.8.10kotlin-stdlib-jdk8-1.6.21这两个模块存在相同的类kotlin.collections.jdk8.CollectionsJDK8Ktkotlin.internal.jdk7.JDK7PlatformImplementationskotlin.internal.jdk7.JDK7PlatformImplementations$ReflectSdkVersionkotlin.internal.jdk8.JDK8PlatformImplementationskotlin.internal.jdk8.JDK8PlatformImplementations$ReflectSdkVersionkotlin.io.path.ExperimentalPathApikotlin.io.path.PathRelativizerkotlin.io.path.PathsKt

这种情况会导致冲突和错误,因为编译器无法确定要使用哪个模块中的类。

> Task :app:checkDebugDuplicateClasses FAILED
Execution failed for task ':app:checkDebugDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
   > Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations$ReflectSdkVersion found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.internal.jdk8.JDK8PlatformImplementations found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.internal.jdk8.JDK8PlatformImplementations$ReflectSdkVersion found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.io.path.ExperimentalPathApi found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.io.path.PathRelativizer found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.io.path.PathsKt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.io.path.PathsKt__PathReadWriteKt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.io.path.PathsKt__PathUtilsKt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.jdk7.AutoCloseableKt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.jvm.jdk8.JvmRepeatableKt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.random.jdk8.PlatformThreadLocalRandom found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$1 found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$2 found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$3 found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$4 found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.text.jdk8.RegexExtensionsJDK8Kt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.time.jdk8.DurationConversionsJDK8Kt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

安卓依赖冲突问题_第2张图片

甚至我Release 单元测试每一个都没有报错,但是整体运行就报错

安卓依赖冲突问题_第3张图片

那么各种方式都试了我,最后怎么解决的?

我终于找到了一个看似很笨的方法,但是很有效,毕竟我已经连续很久没有进展了(之前也许也有这种方法一直被我忽略了)

我的解决方法

在build.gradle的中依赖中一个一个注释,然后查看哪个重复,再清理缓存,重构,最后看哪个注释掉正常运行就好了

ependencies {
   
}

安卓依赖冲突问题_第4张图片

也许我的方法能帮到一些和我一样刚刚学处在什么也不懂的阶段的人,我们一起进步,加油

你可能感兴趣的:(android)