问题描述
如题,在android开发环境中,以下引用找不到
import androidx.annotation.Nullable;
导致相应注解@Nullable报错(报红)
@Nullable
问题原因
相关引用与之冲突导致,我的代码里还有kotlin相关依赖和插件,kotlin里也有这个androidx的annotation引用。
如何发现的问题?
虽然代码中有报错,但我还是运行了一下,结果就报了以下错误。
Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations found in modules jetified-kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and jetified-kotlin-stdlib-jdk7-1.5.30 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.30)
Duplicate class kotlin.io.path.ExperimentalPathApi found in modules jetified-kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and jetified-kotlin-stdlib-jdk7-1.5.30 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.30)
Duplicate class kotlin.io.path.PathRelativizer found in modules jetified-kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and jetified-kotlin-stdlib-jdk7-1.5.30 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.30)
Duplicate class kotlin.io.path.PathsKt found in modules jetified-kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and jetified-kotlin-stdlib-jdk7-1.5.30 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.30)
Duplicate class kotlin.io.path.PathsKt__PathReadWriteKt found in modules jetified-kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and jetified-kotlin-stdlib-jdk7-1.5.30 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.30)
Duplicate class kotlin.io.path.PathsKt__PathUtilsKt found in modules jetified-kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and jetified-kotlin-stdlib-jdk7-1.5.30 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.30)
Duplicate class kotlin.jdk7.AutoCloseableKt found in modules jetified-kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and jetified-kotlin-stdlib-jdk7-1.5.30 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.30)
Go to the documentation to learn how to Fix dependency resolution errors.
以上代码频繁出现kotlin相关包出现多余的依赖,于是分析可能是kotlin相关依赖或插件有问题。
解决办法
-
我删除了 Project下build.gradle中的kotlin引用(classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"),具体如下:
-
删除Module下build.gradle中的相关代码,具体如下:
以上代码全部屏蔽后,Sync Now 一下代码,再去看项目中的错误已经消失。
有的小伙伴可能会问,那kotlin相关功能还能用么?目前我的项目中kotlin相关功能都能用,可能是我升级了android studio和相关SDK,最新的SDK中包含kotlin相关代码,可能也正是因为升级SDK才导致的相关冲突。