More than one file was found with OS independent path 'META-INF/proguard/androidx-annotations.pro'
Asked Answered
C

9

93

i am trying android WorkManager, The code is throwing error "More than one file was found with OS independent path 'META-INF/proguard/androidx-annotations.pro" when running, I tried the following answer, it was not helpful.

WorkManager Dependencies

build.gradle(app)

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"
}
Christoforo answered 26/9, 2018 at 13:1 Comment(0)
C
190

This is a known problem at the moment, Architecture Components Release Notes outline the issue and provides a solution to fix it until alpha10 version of work manager library:

Known Issue

If you run into the following issue: "More than one file was found with OS independent path 'META-INF/proguard/androidx-annotations.pro'", please put the following in your gradle file as a temporary workaround while we fix the issue in alpha10:

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

So, in your case, android section should be like following:

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'
    }
}

Issue should be addressed properly in 1.0.0-alpha10 version of WorkManager.

Comose answered 26/9, 2018 at 18:11 Comment(1)
In my case I had to add exclude 'META-INF/proguard/coroutines.pro' to the packagingOptions alsoLettered
D
13

I got the same error when I added the following to my app's build.gradle dependencies section:

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

Following the Migration to AndroidX:

  1. In Android Studio, from the Refactor menu, select Migrate to AndroidX...
  2. better check the option to backup your project as a zip file in case the migration fails,
  3. and then after clicking Migrate you will get to choose the location to save the zip backup.

now I am able to build without problems so far.


My setup

Android Studio 3.2.1
JRE: 1.8.0_152-release-1136-b06 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains
macOS 10.13.6

Dicks answered 20/10, 2018 at 17:57 Comment(0)
G
9

Can use add in build.gradle(app) (answered by TheStrikeBone)

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

OR downgrade android.arch.work version into 1.0.0-alpha08

dependencies {
    implementation 'android.arch.work:work-runtime:1.0.0-alpha08'
}
Giantess answered 29/9, 2018 at 7:8 Comment(0)
C
7

Adding this to my apps build.gradle file solved my problem.

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'
  }
}
Chicane answered 21/1, 2019 at 11:31 Comment(2)
can you explain more to understand? Thanks.Kingsize
In addition, the packagingOptions must be added in the app module, not library moduleMannuela
H
2

As a beginner, I had this issue while using a pre-made project for in some tutorial, and above solution didn't work for me.

So in case someone face same problem.

I had to upgrade gradle version in build.gradle file for project:

buildscript {

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

Then I had to upgrade gradle wrapper in 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

Then, I set useAndroidX to true in gradle.properties file:

android.useAndroidX=true

That's it. I hope it helps.

Hellespont answered 30/3, 2020 at 14:8 Comment(1)
Upgrading my Gradle did the trick for me, thank youAlienist
C
2

In my case adding below code on build.gradle helps to solve the problem.

android {
  packagingOptions {
    pickFirst '**'
  }
}
Chibouk answered 22/11, 2022 at 13:32 Comment(0)
A
1

Always look first for implementations in Gradle. maybe two implementations collide with each other.. maybe you did not delete card view v7, and added androidx card view, something like that than you try other things.

I have just that situation and removing old implementation solved the problem.

Afreet answered 19/5, 2020 at 17:17 Comment(0)
A
0

In my case, I solve the problem by setting androidx.room use the same version as androidx.lifecycle

Aerodynamics answered 18/12, 2019 at 9:32 Comment(0)
L
0
android
{
    packagingOptions
    {
        exclude 'META-INF/com.android.tools/proguard/coroutines.pro'
    }
}
Loch answered 18/5, 2023 at 10:56 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.