Cuando construyo mi aplicación, aparece el siguiente error:
Error: Error de ejecución para la tarea ': aplicación: transformResourcesWithMergeJavaResForDebug'. Se encontró más de un archivo con la ruta independiente del sistema operativo 'META-INF / LICENSE'
Este es mi archivo build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "cn.sz.cyrus.kotlintest"
minSdkVersion 14
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
javaCompileOptions{
annotationProcessorOptions{
includeCompileClasspath = true
}
}
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
/* exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'*/
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
compile 'com.android.support:appcompat-v7:25.3.1'
testCompile 'junit:junit:4.12'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.1'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
compile 'com.github.GrenderG:Toasty:1.2.5'
compile 'com.orhanobut:logger:1.15'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.umeng.analytics:analytics:latest.integration'
compile 'ai.api:libai:1.4.8'
compile 'ai.api:sdk:2.0.5@aar'
// api.ai SDK dependencies
compile 'com.google.code.gson:gson:2.8.0'
compile 'commons-io:commons-io:2.4'
compile 'com.android.support:multidex:1.0.1'
}
Cuando agrego este código a mi archivo build.gradle,
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
Este error se resolvería, pero sucederá otro problema. Me gusta esto:
java.lang.NoClassDefFoundError: com.squareup.leakcanary.internal.HeapAnalyzerService
at com.squareup.leakcanary.LeakCanary.isInAnalyzerProcess(LeakCanary.java:145)
at cn.sz.cyrus.wemz.TestApplication.onCreate(TestApplication.kt:32)
¿Quién tiene ideas de cómo resolver esto?
android
gradle
build.gradle
Ciro
fuente
fuente
Respuestas:
Puedes agregar esto
yourProject/app/build.gradle
adentroandroid{}
fuente
En mi caso, fue suficiente para excluir solo la ruta 'META-INF / DEPENDENCIES' en el
yourProject/app/build.gradle
interiorandroid{}
. Aquí estáY luego hacer Proyecto limpio y Proyecto de reconstrucción.
fuente
Las soluciones aquí no me ayudaron, pero este enlace sí.
Si tiene una biblioteca que agrega algunos archivos .so de Android, como
libassmidi.so
olibgnustl_shared.so
tiene que decirle a Gradle que elija solo uno al empaquetar, de lo contrario obtendrá el conflicto.Estaba teniendo este problema al usar una aplicación React Native como biblioteca en un proyecto de Android. Espero eso ayude
fuente
Tenía un mensaje similar
Para resolverlo, tuve que habilitar la vista de paquetes ( 1 ) en Android Studio, luego buscar en el árbol las bibliotecas y ubicar los duplicados ( 2 )
Luego, ctrl + alt + f12 (o menú RMB) ( 3 ) - y encontró bibliotecas que causaron el problema. Hice una lista de archivos dentro de esas bibliotecas que causaron los problemas, y los escribió en el archivo build.gradle de la aplicación dentro de la sección de Android . Otra opción es tratar con la biblioteca, que contiene archivos duplicados
fuente
Básicamente, cuando Gradle reúne el archivo apk, copia el contenido de todas las dependencias de compilación. Es lo suficientemente inteligente como para ver que hay un archivo duplicado ... proveniente de dos archivos jar diferentes. Esto podría ser cualquier archivo como a.txt o META-INF / DEPENDENCIES. Puede ser mejor excluir estos archivos usando lo siguiente, en caso de que el archivo esté presente solo con fines informativos.
O, en caso de que el archivo sea obligatorio, como un archivo de clase, que se ha duplicado en dos dependencias jar relacionadas entre sí, lo mejor es encontrar alternativas a estos archivos jar, en la forma de una versión más compatible.
fuente
Estaba teniendo el mismo problema y probé esto
Solución: todo lo que tiene que hacer para solucionar esto es agregar esto a la sección de Android {} en 'build.gradle' de su aplicación
fuente
Esto sucede cuando se usa
org.jetbrains.kotlinx: kotlinx-coroutines-core: 1.2.0
Y se arregla en la próxima versión
org.jetbrains.kotlinx: kotlinx-coroutines-core: 1.2.1
fuente
Encontré el mismo error y descubrí que era el resultado de que diferentes módulos contenían las mismas clases de diferentes paquetes .
Por ejemplo, uno usaba el paquete androidx y el otro usaba pre-androidx
Lo resolví migrando el módulo pre-androidx a androidx usando la función incorporada de Android Studio: "Refactor -> Migrate to Androidx ..." sin excluir nada.
Para su situación, puede verificar si tiene desajustes de dependencia entre los módulos.
fuente
He leído todas las respuestas relacionadas con la recepción de este mensaje
Android Studio
:pero en este caso excluir clases no es necesario, solo necesitamos excluir
'META-INF/DEPENDENCIES'
, esto se puede hacer dentro de/app/build.gradle
:fuente
Actualicé Studio de Java 7 a Java 8, y ocurrió este problema. Luego lo resolví de esta manera:
fuente
En mi aplicación, estaba agregando las dependencias jar como esta:
Pero me di cuenta de que ya se habían agregado debido a la siguiente primera línea en dependencias:
Esta línea agrega todos los frascos en la carpeta lib a la dependencia de la aplicación.
Por lo tanto, después de eliminar la dependencia adicional
implementation files('libs/json-simple-1.1.1.jar')
Está funcionando bien.
fuente
Me he enfrentado a un problema similar al trabajar en un entorno de aplicación de múltiples módulos:
Varios de estos módulos míos informaron sobre este problema y ninguna de las soluciones anteriores lo solucionó. Resulta que estaba usando la versión Coroutines 1.3.6 que parecía estar incrustando META-INF / AL2.0 que ya estaba incrustada por otra de las bibliotecas que estaba usando. Para solucionarlo, he agregado el siguiente fragmento de código al build.gradle del módulo que estaba fallando:
Dado que estaba sucediendo en varios módulos, he movido ese
resolutionStrategy
código a mi nivel de proyecto build.gradle. Todo funcionó después de eso.fuente
Tengo el mismo problema y probé esto
Error: se encontró más de un archivo con la ruta independiente del sistema operativo 'META-INF / library_release.kotlin_module'
Solución:
fuente
Tuve un problema similar. recibía el mensaje de error
Como se indica en algunas de las respuestas anteriores, usar el siguiente código funciona
Pero recibí este error para 20 archivos diferentes, así que después de excluir 20 archivos, paré e intenté encontrar una solución decente. También me encontré con el
Finalmente logré resolver esto.
En primer lugar (como en mi caso WillCloseWhenClosed.java era el archivo duplicado), en Android Studio tiene la opción de 'buscar en todas partes'. Escriba y busque el archivo allí. Allí encontré varias instancias de este archivo. Así que hice clic en ambas instancias y vi su ubicación haciendo clic derecho en el archivo y viendo su ubicación cuando se abrieron en el estudio de Android.
En segundo lugar, descubrí que tenía algunas dependencias en el archivo gradle. Estaba usando el siguiente código
y también tenía sus mismos paquetes zip en la ubicación: \ Users \ user \ AndroidStudioProjects \ git \ appname \ app \ libs \ google-http-client-1.23 !.
Así que esto era redundante y por eso Gradle está encontrando 2 archivos. Así que eliminé mis paquetes zip y resolvió los errores por mí. Ten cuidado al hacer esto. Debe averiguar cuál es el archivo o paquete correcto que se eliminará.
En tercer lugar, gradle también crea un archivo zip de estos archivos de errores en esta ubicación (al menos para mí lo hizo): C: \ Archivos de programa \ Android \ Android Studio \ gradle \ m2repository \ com \ google \ code \ findbugs \ jsr305 \ 1.3. 9 \ jsr305-1.3.9.jar!
así que fui y eliminé el archivo jsr305-1.3.9.jar de aquí también.
Si todavía está confundido, simplemente vaya a 'buscar en todas partes' en el estudio de Android, encuentre instancias de su archivo allí y tendría que eliminar uno de ellos. Tómese su tiempo y descubra cuál.
fuente
Agregando
android.useAndroidX = true
android.enableJetifier = true
a gradle.properties trabajado para mí.
fuente
Enfrenté este problema, primero con algunas bibliotecas nativas (archivos .so) y luego con archivos java / kotlin. Resultó que estaba incluyendo una biblioteca desde la fuente, así como referencias de artefactos a través de una dependencia transitiva. Verifique su árbol de dependencia para ver si hay entradas redundantes. Use
./gradlew :app:dependencies
para obtener el árbol de dependencias. Reemplace "aplicación" con el nombre de su módulo si el nombre del módulo principal es diferente.fuente
Intente cambiar la versión mínima de Android> = 21 en su build.gradle android {}
fuente
Agregue lo siguiente en el archivo gradel de nivel de aplicación dentro de Android {}
fuente
Intente eliminar multidex de la configuración predeterminada y verifique el registro de errores de compilación. Si ese registro es relacionado con la clase INotification. Use esto en Android {}
Esto me ayuda
fuente
Para mí, la solución a continuación funcionó, también puede obtener ayuda, escribí debajo de la línea en el archivo gradle de la aplicación
fuente
Estaba conectado, pero mi proyecto ya había migrado a AndroidX, pero después de migrar a androidX nuevamente, refactorizó una parte de mi proyecto y el problema se resolvió.
fuente
Agregue el siguiente código en app.gradle, esto resolverá todos los errores de dependencia de la biblioteca
fuente
para mí, era .md en lugar de .txt
fuente
En muchas de las respuestas sobre SO sobre este problema, se ha sugerido agregar
exclude 'META-INF/DEPENDENCIES'
y algunas otras excluir. Sin embargo, ninguno de estos funcionó para mí. En mi caso, el escenario era así:Había agregado esto en dependencias:
Y también había agregado esto en gradle.properties:
Agregué ambos, porque recibía el error de compilación 'no se puede encontrar la clase de símbolo Nullable' y se sugirió como solución a esto en algunas de las respuestas como aquí
Sin embargo, finalmente conseguí un error:
No
exclude
estaba trabajando para mí. Finalmente, simplemente eliminé esas líneas agregadas arriba solo por suspensión (resuelto 'no se puede encontrar la clase de símbolo Nullable' de alguna manera alternativa) y finalmente me deshice de este error de compilación "Se encontró más de un archivo con sistema operativo ...". Perdí horas mías. Pero finalmente lo eliminé.fuente
Solo necesita invalidar la caché y reiniciar , después de ese proyecto limpio
fuente