android - soporta - Se encontró más de un archivo con la ruta independiente del sistema operativo ''META-INF/LICENSE''
ext4 android (17)
Cuando construyo mi aplicación, recibí un error de seguimiento.
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 esos códigos a mi archivo 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?
Actualicé Studio de Java 7 a Java 8, y ocurrió este problema. Luego lo resolví de esta manera:
android {
defaultConfig {
}
buildTypes {
}
packagingOptions{
exclude ''META-INF/rxjava.properties''
}
}
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.
android{
packagingOptions {
exclude ''META-INF/DEPENDENCIES''
}
}
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.
En mi aplicación, estaba agregando las dependencias jar como esta:
implementation files(''libs/json-simple-1.1.1.jar'')
Pero me di cuenta de que ya se agregaron debido a la siguiente primera línea en las dependencias:
implementation fileTree(include: [''*.jar''], dir: ''libs'')
Esta línea agrega todos los archivos jar en la carpeta lib a la dependencia de la aplicación.
Por lo tanto, después de eliminar los
implementation files(''libs/json-simple-1.1.1.jar'')
dependencia adicionales
implementation files(''libs/json-simple-1.1.1.jar'')
Está funcionando bien.
En mi caso, fue suficiente para excluir solo la ruta ''META-INF / LICENSE'' en
yourProject/app/build.gradle
dentro de
android{}
.
Aquí está
packagingOptions {
exclude ''META-INF/LICENSE''
}
Y luego hacer Proyecto limpio y Proyecto de reconstrucción.
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.
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 a 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.
Estaba teniendo el mismo problema y probé esto
Error: se encontró más de un archivo con la ruta independiente del sistema operativo ''META-INF / proguard / androidx-annotations.pro''
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
packagingOptions {
exclude ''META-INF/proguard/androidx-annotations.pro''
}
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
He leído todas las respuestas relacionadas con obtener este mensaje en
Android Studio
:
Se encontró más de un archivo con la ruta independiente del sistema operativo ''META-INF / LICENSE''
pero en este caso excluir clases no es necesario, solo necesitamos excluir
''META-INF/DEPENDENCIES''
, esto se puede hacer dentro de
/app/build.gradle
:
android{
...
...
packagingOptions {
exclude ''META-INF/DEPENDENCIES''
}
}
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 {}
configurations {
all*.exclude group: ''com.android.support'', module: ''support-v4''
}
Esto me ayuda
Las soluciones aquí no me ayudaron, pero este enlace sí.
Si tiene una biblioteca que agrega algunos archivos
libassmidi.so
Android, como
libassmidi.so
o
libgnustl_shared.so
, debe decirle a
gradle
que elija solo uno al empaquetar, de lo contrario obtendrá el conflicto.
android {
packagingOptions {
pickFirst ''lib/armeabi-v7a/libassmidi.so''
pickFirst ''lib/x86/libassmidi.so''
}
}
Estaba teniendo este problema al usar una aplicación React Native como biblioteca en un proyecto de Android. Espero eso ayude
Otra solución que he encontrado. Asegúrese de que sus versiones sean las mismas para las mismas bibliotecas padre e hijo en gradle, como se muestra a continuación:
dependencies {
implementation fileTree(include: [''*.jar''], dir: ''libs'')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation ''com.android.support:appcompat-v7:28.0.0''
implementation ''com.android.support.constraint:constraint-layout:1.1.3''
**implementation ''com.google.android.gms:play-services-maps:12.0.1''**
testImplementation ''junit:junit:4.12''
androidTestImplementation ''com.android.support.test:runner:1.0.2''
androidTestImplementation ''com.android.support.test.espresso:espresso-core:3.0.2''
implementation ''com.android.support:mediarouter-v7:28.0.0''
**implementation ''com.google.android.gms:play-services:12.0.1''**
}
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
packagingOptions {
exclude ''META-INF/proguard/androidx-annotations.pro''
}
Puedes agregar esto en
yourProject/app/build.gradle
dentro de
android{}
android {
packagingOptions {
exclude ''META-INF/DEPENDENCIES''
exclude ''META-INF/LICENSE''
exclude ''META-INF/LICENSE.txt''
exclude ''META-INF/license.txt''
exclude ''META-INF/NOTICE''
exclude ''META-INF/NOTICE.txt''
exclude ''META-INF/notice.txt''
exclude ''META-INF/ASL2.0''
}
}
Tenía un mensaje similar
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 ''constant-values.html''
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
packagingOptions {
exclude ''allclasses-frame.html''
exclude ''allclasses-noframe.html''
<..>
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:
android {
packagingOptions {
exclude ''META-INF/library_release.kotlin_module''
}
}
https://github.com/WindSekirun/NaraeImagePicker/issues/7
Trabajó para mi....
Tuve un problema similar. recibía el mensaje de error
Error:Execution failed for task '':app:transformResourcesWithMergeJavaResForDebug''.
More than one file was found with OS independent path ''javax/annotation/WillCloseWhenClosed.java''
Como se indica en algunas de las respuestas anteriores, usar el siguiente código funciona
''packagingOptions {
exclude ''allclasses-frame.html''
}''
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
''Unable to execute dex: Multiple dex files'' error.
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
dependencies {
compile ''com.google.api-client:google-api-client:1.23.0''
}
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.