我收到以下警告,但我不确定v1.0.6所在的位置。
这个错误是否可能来自Kotlin库,包括一个旧的Kotlin版本?
任何想法如何修复它或至少如何遵循建议使kotlin-reflect明确(1.1)?
答案 0 :(得分:54)
您的项目似乎是以依赖kotlin-stdlib
1.1和kotlin-reflect
1.0的方式配置的。最可能的情况是您已经明确依赖kotlin-stdlib
1.1但不依赖于kotlin-reflect
,而其他一些库(您依赖它)依赖于kotlin-reflect
1.0。< / p>
如果情况确实如此,那么解决方案就是明确依赖kotlin-reflect
1.1。
在Maven中,将其添加到pom.xml
:
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
在Gradle中,将其添加到build.gradle
:
dependencies {
compile "org.jetbrains.kotlin:kotlin-reflect:1.1.0"
}
查看有关此问题和相关警告的一些信息in the official docs。
答案 1 :(得分:13)
我通过覆盖应用中使用的kotlin版本来修复警告
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'org.jetbrains.kotlin' && requested.name == 'kotlin-reflect') {
details.useVersion kotlin_version
}
}
}
例如kotlin_version = 1.3.0
答案 2 :(得分:10)
首先,通过下面的gradle脚本找出原因
./gradlew app:dependencies
(将app
更改为gradle模块名称)
+--- project :common
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.61
| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61
| | \--- org.jetbrains:annotations:13.0
| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.3
| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61
| +--- org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:0.12.0 -> 0.14.0
| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.60 -> 1.3.61
然后,将显示依赖关系树。 检查哪个依赖项使用了问题依赖项。
如果找到依赖项,请决定如何解决它。
我不确定什么是最好的方法。请参考。
答案 3 :(得分:2)
当您在kotlin项目(android)中使用匕首并且kotlin版本为1.7即
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
您要做的就是将以下依赖项添加到您的应用构建gradle级别
implementation "org.jetbrains.kotlin:kotlin-reflect:1.3.50"
答案 4 :(得分:2)
请确保使用相同版本的stdlib-jdk7
和kotlin-gradle-plugin
依赖项,以避免出现警告。
您可以参考以下示例,其中stdlib-jdk7
和kotlin-gradle-plugin
的版本相同
应用程序级build.gradle文件
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.0"
...
}
项目级build.gradle文件
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.0"
...
}
}
答案 5 :(得分:1)
替换这个
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.4.30'
与
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.30'
库的版本应该与项目级别的插件相同
classpath org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.30
答案 6 :(得分:-1)
我也遇到了同样的问题,但这是由于Dagger注射错误
答案 7 :(得分:-1)
对于在 XML 无法识别的文件中发生错误的 Android 开发人员
如果它在 Android 中并且由于无法识别 xml 文件而出现错误,您可以在 xml 文件夹文件中搜索一些错误(在我的情况下,其中一个文件具有重复的标签)