Se encontró más de un archivo con la ruta independiente del sistema operativo 'META-INF / proguard / androidx-annotations.pro'


79

Estoy probando Android WorkManager , el código arroja un error " Se encontró más de un archivo con la ruta independiente del sistema operativo 'META-INF / proguard / androidx-annotations.pro " al ejecutarlo, probé la siguiente respuesta , no fue útil.

Dependencias de WorkManager

build.gradle (aplicación)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "rock.dmx.xaro.workmanagerexample"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }


}

dependencies {
    def work_version = "1.0.0-alpha09"
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    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 "android.arch.work:work-runtime:$work_version"
}

Respuestas:


167

Este es un problema conocido en este momento, las notas de la versión de componentes de arquitectura describen el problema y proporcionan una solución para solucionarlo hasta la alpha10versión de la biblioteca del administrador de trabajo:

Problema conocido

Si se encuentra con el siguiente problema: "Se encontró más de un archivo con la ruta independiente del sistema operativo 'META-INF / proguard / androidx-annotations.pro'", coloque lo siguiente en su archivo gradle como una solución temporal mientras arreglamos el problema en alpha10:

 android {
     packagingOptions {
         exclude 'META-INF/proguard/androidx-annotations.pro'
     }
 }

Entonces, en su caso, la sección de Android debería ser la siguiente:

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "rock.dmx.xaro.workmanagerexample"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    // Temporary fix until alpha10
    packagingOptions {
        exclude 'META-INF/proguard/androidx-annotations.pro'
    }
}

El problema debe tratarse correctamente en la 1.0.0-alpha10versión de WorkManager.


Este es solo otro caso que muestra lo estúpido que es el ecosistema de desarrollo de Android.
syloc

En mi caso tuve que agregar exclude 'META-INF/proguard/coroutines.pro'
opciones

12

Recibí el mismo error cuando agregué lo siguiente a la sección de dependencias build.gradle de mi aplicación:

implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"

Después de la migración a AndroidX :

  1. En Android Studio, en el menú Refactor , seleccione Migrar a AndroidX ...
  2. mejor marque la opción de hacer una copia de seguridad de su proyecto como un archivo zip en caso de que la migración falle,
  3. y luego, después de hacer clic en Migrar , podrá elegir la ubicación para guardar la copia de seguridad zip.

ahora puedo construir sin problemas hasta ahora.


Mi configuración

Android Studio 3.2.1
JRE: 1.8.0_152-release-1136-b06 x86_64
JVM: VM de servidor OpenJDK de 64 bits de JetBrains
macOS 10.13.6


7

Puede usar add in build.gradle (aplicación) (respondido por TheStrikeBone )

android {
    packagingOptions {
        exclude 'META-INF/proguard/androidx-annotations.pro'
    }
}

O rebajar la android.arch.workversión a1.0.0-alpha08

dependencies {
    implementation 'android.arch.work:work-runtime:1.0.0-alpha08'
}

5

Agregar esto a mi archivo build.gradle de aplicaciones resolvió mi problema.

android {
  packagingOptions {
    exclude 'META-INF/proguard/androidx-annotations.pro'
    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'
  }
}

1
¿Puedes explicar más para entender? Gracias.
Shanteshwar Inde

0

En mi caso, resuelvo el problema configurando androidx.room para usar la misma versión que androidx.lifecycle


0

Como principiante, tuve este problema mientras usaba un proyecto prefabricado en algún tutorial, y la solución anterior no funcionó para mí.

Entonces, en caso de que alguien se enfrente al mismo problema.

Tuve que actualizar la versión de gradle en el build.gradlearchivo del proyecto:

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.1'        
    }
}
...

Luego tuve que actualizar gradle wrapper en gradle-wrapper.properties:

#Wed Sep 26 11:30:41 IST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

# Delete this
#distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

# Add this
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip

Luego, lo configuro useAndroidXcomo verdadero en el gradle.propertiesarchivo:

android.useAndroidX=true

Eso es. Espero que ayude.


0

Siempre busque primero las implementaciones en Gradle. tal vez dos implementaciones chocan entre sí ... tal vez no eliminó la vista de la tarjeta v7 y agregó la vista de la tarjeta androidx, algo así y luego pruebe otras cosas.

Tengo esa situación y la eliminación de la implementación anterior resolvió el problema.

Feliz codificación Nenad

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.