More than one file was found with OS independent path 'META-INF/proguard/androidx-annotations.pro'
Android WorkmanagerAndroid 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.
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"
Migration to AndroidX:
Following the- In Android Studio, from the Refactor menu, select Migrate to AndroidX...
- better check the option to backup your project as a zip file in case the migration fails,
- 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