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

巧了我就是萌 提交于 2019-12-31 08:33:18

问题


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:

  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




回答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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!