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

Android Workmanager

Android Workmanager Problem Overview


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

Android Workmanager Solutions


Solution 1 - Android Workmanager

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.

Solution 2 - Android Workmanager

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

Solution 3 - Android Workmanager

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

Solution 4 - Android Workmanager

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

Solution 5 - Android Workmanager

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

Solution 6 - Android Workmanager

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.

Solution 7 - Android Workmanager

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.

Happy codding Nenad

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBasha KView Question on Stackoverflow
Solution 1 - Android WorkmanagerTSB99XView Answer on Stackoverflow
Solution 2 - Android WorkmanagerAhmed AlAskalanyView Answer on Stackoverflow
Solution 3 - Android WorkmanagerAhmad AghazadehView Answer on Stackoverflow
Solution 4 - Android WorkmanagerGathua KiraguView Answer on Stackoverflow
Solution 5 - Android WorkmanagerJenkynView Answer on Stackoverflow
Solution 6 - Android WorkmanagerAhmed ShendyView Answer on Stackoverflow
Solution 7 - Android WorkmanagerNenad ŠtrbićView Answer on Stackoverflow