Recibo la siguiente advertencia, pero no estoy seguro de dónde reside v1.0.6.
¿Es posible que este error provenga de una biblioteca de Kotlin que de alguna manera incluye una versión anterior de Kotlin?
¿Alguna idea de cómo solucionarlo o al menos cómo puedo seguir la sugerencia para hacer que kotlin-reflect sea explícito (1.1)?
Parece que su proyecto está configurado de tal manera que depende de kotlin-stdlib 1.1 y kotlin-reflect 1.0. El caso más probable es que ya tenga una dependencia explícita en kotlin-stdlib 1.1 pero no tenga ninguna dependencia en kotlin-reflect , y alguna otra biblioteca (de la que depende) depende de kotlin-reflect 1.0.
Si ese es el caso, la solución es proporcionar una dependencia explícita en kotlin-reflect 1.1.
En Maven, agregue esto a pom.xml :
<dependencies> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-reflect</artifactId> <version>1.1.0</version> </dependency> </dependencies> En Gradle, agregue esto a build.gradle :
dependencies { implementation "org.jetbrains.kotlin:kotlin-reflect:1.1.0" }Consulte información sobre esto y las advertencias relacionadas en los documentos oficiales .
Arreglé la advertencia sobrescribiendo la versión de kotlin utilizada en mi aplicación
configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'org.jetbrains.kotlin' && requested.name == 'kotlin-reflect') { details.useVersion kotlin_version } } } por ejemplo kotlin_version = 1.3.0
sucede cuando está usando la daga en un proyecto de kotlin (android) y tiene la versión de kotlin para ser 1.7, es decir
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"todo lo que tiene que hacer es agregar la dependencia a continuación al nivel de gradle de compilación de su aplicación
implementation "org.jetbrains.kotlin:kotlin-reflect:1.3.50"en primer lugar, descubra la razón por el script gradle a continuación
./gradlew app:dependencies (cambie la app a su nombre de módulo 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.61Luego, se mostrará el árbol de dependencias. verifique qué dependencia usa la dependencia del problema.
Si encontró la dependencia, decida cómo resolverla.
No estoy seguro de cuál es la mejor manera. amablemente solo refiérase a él.
Asegúrese de usar la misma versión de stdlib-jdk7 y kotlin-gradle-plugin para evitar advertencias.
Puede consultar el siguiente ejemplo donde stdlib-jdk7 y kotlin-gradle-plugin tienen la misma versión
archivo build.gradle a nivel de aplicación
dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.0" ... }archivo de nivel de proyecto build.gradle
buildscript { dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.0" ... }}
PARA DESARROLLADORES DE ANDROID CON ERROR EN UN ARCHIVO XML NO RECONOCIDO
Si está en Android y aparece el error al no reconocer un archivo xml, podría buscar algún error en los archivos de la carpeta xml (en mi caso, uno de los archivos tenía la etiqueta duplicada)
reemplaza esto
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.4.30'con
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.30'la versión de la biblioteca debe ser la misma que la del complemento en el nivel del proyecto
classpath org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.30Cuando esto sucede para la tarea Lint, se pueden enumerar las dependencias con:
./gradlew -q dependencies app:dependencies --configuration lintClassPath Lo que demuestra que por ej. kotlin-stdlib-jdk8:1.4.32 :
+--- org.jetbrains.kotlin:kotlin-reflect:1.4.32 (*) \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 (*)Escribí un script de Gradle, que iguala todas las versiones de la biblioteca de Kotlin:
// Runtime JAR files in the classpath should have the same version. configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def kotlinVersion = "1.6.0" def requested = details.requested if (requested.group == 'org.jetbrains.kotlin') { List<String> list = ['kotlin-stdlib', 'kotlin-stdlib-jdk7', 'kotlin-stdlib-jdk8', 'kotlin-stdlib-common'] if (list.contains(requested.name)) { details.useVersion kotlinVersion } } } } No hay otra manera, porque las herramientas de compilación están incorporando algunas versiones anteriores.
Probablemente también se podría agregar kotlin-reflect en la List<String> list (no probada).
La versión de Kotlin en build.gradle y la que se incluye con su IDE son versiones diferentes. Verifique la versión de Kotlin en build.gradle (aplicación) y en Herramientas -> Kotlin -> Configurar actualizaciones de complementos de Kotlin.