问题
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"
}
回答1:
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.
回答2:
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:
- 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
回答3:
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'
}
回答4:
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'
}
}
回答5:
In my case, I solve the problem by setting androidx.room use the same version as androidx.lifecycle
来源:https://stackoverflow.com/questions/52518378/more-than-one-file-was-found-with-os-independent-path-meta-inf-proguard-android