aulladores de medianoche
Seguí recibiendo el error de que hay un error duplicado en las clases.
Esto es lo que tengo en la carpeta org.jetbrains.kotlin
.idea/bibliotecas
parece que el problema se debe a que hay dos dependencias diferentes para kotlin, desde stdlib y stdlibjdk8, pero no sé cómo eliminar ninguna de las dependencias de mi módulo/proyecto. Por favor ayuda 🙁
Aquí está el código de error completo:
Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0)
Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.0)
Duplicate class kotlin.internal.jdk8.JDK8PlatformImplementations found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0)
Duplicate class kotlin.io.path.ExperimentalPathApi found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.0)
Duplicate class kotlin.io.path.PathRelativizer found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.0)
Duplicate class kotlin.io.path.PathsKt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.0)
Duplicate class kotlin.io.path.PathsKt__PathReadWriteKt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.0)
Duplicate class kotlin.io.path.PathsKt__PathUtilsKt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.0)
Duplicate class kotlin.jdk7.AutoCloseableKt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.0)
Duplicate class kotlin.jvm.jdk8.JvmRepeatableKt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0)
Duplicate class kotlin.random.jdk8.PlatformThreadLocalRandom found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0)
Duplicate class kotlin.streams.jdk8.StreamsKt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0)
Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$1 found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0)
Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$2 found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0)
Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$3 found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0)
Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$4 found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0)
Duplicate class kotlin.text.jdk8.RegexExtensionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0)
Duplicate class kotlin.time.jdk8.DurationConversionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.6.0 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0)
Intenté eliminar los archivos de org.jetbrains.kotlin, pero cada vez que construyo la aplicación en Android Studio, los archivos se vuelven a descargar.
este es el código gradle de mi aplicación de módulo
plugins {
id 'com.android.application'
id 'com.google.gms.google-services'
}
android {
compileSdk 33
defaultConfig {
applicationId "com.example.umfs"
minSdk 21
targetSdk 32
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
viewBinding true
}
namespace 'com.example.umfs'
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'com.google.android.material:material:1.7.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'com.google.firebase:firebase-database:20.1.0'
implementation 'androidx.preference:preference:1.2.0'
implementation 'com.google.firebase:firebase-auth:21.1.0'
implementation 'com.google.firebase:firebase-core:21.1.1'
implementation 'androidx.navigation:navigation-fragment:2.5.3'
implementation 'androidx.navigation:navigation-ui:2.5.3'
implementation 'com.google.firebase:firebase-firestore:24.4.1'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0'
implementation 'de.hdodenhof:circleimageview:3.1.0'
implementation "androidx.cardview:cardview:1.0.0"
implementation 'com.google.firebase:firebase-firestore:24.4.1'
implementation 'com.google.firebase:firebase-storage:20.1.0'
implementation 'com.google.firebase:firebase-database'
implementation platform('com.google.firebase:firebase-bom:28.4.0')
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.makeramen:roundedimageview:2.3.0'
implementation 'com.github.bumptech.glide:glide:4.14.2'
implementation 'com.github.marlonlom:timeago:4.0.3'
implementation "androidx.core:core-ktx:+"
}
apply plugin: 'com.google.gms.google-services'
jurpro
Simplemente. Para mí, solo cambie estos complementos de Gradle de 1.7.10 a 1.8.0 y luego sincronice. => invalidar cachés => construir
De:
plugins {
....
id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
}
A:
plugins {
....
id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
}
-
Nota: Después de actualizar a ‘1.8.0’, no olvide actualizar kotlinCompilerExtensionVersion como ‘1.4.0’.
– jamescodingnow
4 de febrero a las 23:22
-
Me sale un error de compilación: Esta versión (1.3.2) de Compose Compiler requiere la versión 1.7.20 de Kotlin, pero parece que está utilizando la versión 1.8.0 de Kotlin, que no se sabe si es compatible. Corrija su configuración (o
suppressKotlinVersionCompatibilityCheck
pero no digas que no te avisé!).– Igor Ganapolski
10 de febrero a las 12:15
-
Pregunta como novato: ¿Dónde debo agregar lo anterior?
– Prasannjeet Singh
12 de febrero a las 22:02
-
Si está utilizando ksp, no olvide actualizarlo también. github.com/google/ksp/releases. Para la versión 1.8.0 de kotlin, ksp debe ser 1.8.0
– Enes Kayıklık
18 de febrero a las 11:26
-
Recibí este error: el complemento de Gradle ‘kotlin-android-extensions’ ya no es compatible. Utilice esta guía de migración (goo.gle/kotlin-android-extensiones-deprecación) para comenzar a trabajar con Ver enlace (desarrollador.android.com/topic/libraries/view-binding) y el complemento ‘kotlin-parcelize’.
– Reijo Korhonen
6 de marzo a las 22:20
David Fraser
Esto es porque kotlin-stdlib-jdk7
y kotlin-stdlib-jdk8
son dependencias más antiguas que deben ser reemplazadas por kotlin-stdlib
(Como señaló @MrPNG de los documentos de novedades de kotlin 1.8). Sin embargo, otras bibliotecas aún pueden declarar una dependencia de ellas, que debe reemplazarse por una dependencia de kotlin-stdlib
.
Puede anular cómo se resuelven las versiones jdk7 y jdk8 de esta manera (en su app/build.gradle
):
dependencies {
constraints {
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0") {
because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib")
}
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0") {
because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
}
}
}
El constraints
La sección anterior se puede agregar junto con sus otras dependencias. Elija la versión (aquí 1.8.0
) para que coincida con el que realmente desea usar, que debería ser el que su versión sin nombre jdkN está en el error de clase duplicada (por ejemplo, (org.jetbrains.kotlin:kotlin-stdlib:1.8.0)
)
Si usted tiene apply plugin: 'kotlin-android'
en este archivo, entonces no es necesario que diga por separado que dependa de la biblioteca estándar en las dependencias, así que elimine las líneas que se vean así:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
(gracias a este blog)
-
Tengo un proyecto en el que la compilación falló por el mismo motivo que el anterior. Y no estoy usando ningún código kotlin en mi proyecto. ¿Hay alguna manera de deshabilitar todas y cada una de las dependencias de Kotlin para que no pueda obtener “clases duplicadas” para las dependencias de Kotlin?
– AJW
9 de marzo a las 0:10
-
Si no está utilizando ningún código kotlin, parece un problema muy diferente incluso si tiene el mismo mensaje de error… probablemente valga la pena publicarlo como una pregunta separada
– David Fraser
ayer
Recibí el mismo error después de actualizar la biblioteca de anotaciones de Android de la versión 1.4.0 a la 1.6.0,
implementation 'androidx.annotation:annotation:1.6.0'
Así que bajé a 1.5.0 y desapareció el error
implementation 'androidx.annotation:annotation:1.5.0'
Espero que esto le ayude también
Resolví el problema cambiando la dependencia de ruta de clase de kotlin en la raíz build.gradle
archivo de
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20-RC"
a
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0"
riggaroo
Si está utilizando Compose, necesita actualizar Compose Compiler (https://developer.android.com/jetpack/androidx/releases/compose-compiler) a 1.4.2 y Kotlin a 1.8.10 al mismo tiempo.
Tran Chien
Actualice el complemento de Android Kotlin y el compilador Kotlin
plugins {
id 'org.jetbrains.kotlin.android' version '1.8.10'
}
android {
composeOptions {
kotlinCompilerExtensionVersion = "1.4.3"
}
}
Luis Rodrigo
Según las notas de la versión de Kotlin 1.8.0 (https://kotlinlang.org/docs/whatsnew18.html#updated-jvm-compilation-target), no debe especificar kotlin-stdlib-jdk7
ni kotlin-stdlib-jdk8
como dependencias y, en su lugar, solo use kotlin-stdlib
.
Pensé que era el único que recibió este error sin haber usado Kotlin en ninguna parte de mi gran proyecto. Luego encontré esta respuesta muy obvia para mí ahora y lo resolvió de manera muy simple para mí. .stackoverflow.com/a/75315276/4355877
– Micky
6 de marzo a las 16:11