使用OS独立路径"META-INF/proguard/androidx-annotations.pro"找到多个文件

bk7*_*bk7 66 android-workmanager

我正在尝试android WorkManager,代码抛出错误"运行时发现多个文件与OS独立路径'META-INF/proguard/androidx-annotations.pro ",我尝试了以下答案,它没有帮助.

WorkManager依赖项

的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"
}
Run Code Online (Sandbox Code Playgroud)

TSB*_*99X 138

这是目前已知的一个问题," 体系结构组件发行说明"概述了该问题,并提供了一个解决方案来解决它直到alpha10工作管理器库的版本:

已知问题

如果您遇到以下问题:"在OS独立路径'META-INF/proguard/androidx-annotations.pro'中找到了多个文件",请在我们的gradle文件中将以下内容作为临时解决方法,同时修复alpha10中的问题:

 android {
     packagingOptions {
         exclude 'META-INF/proguard/androidx-annotations.pro'
     }
 }
Run Code Online (Sandbox Code Playgroud)

所以,在你的情况下,android部分应该如下:

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'
    }
}
Run Code Online (Sandbox Code Playgroud)

应在1.0.0-alpha10WorkManager版本中正确解决问题.

  • 不行,还有其他解决方案吗? (3认同)
  • 就我而言,我还必须将“排除'META-INF/proguard/coroutines.pro'”添加到打包选项中 (2认同)

小智 11

当我将以下内容添加到我的应用程序的build.gradle依赖项部分时,我收到了同样的错误:

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

迁移到AndroidX:

  1. 在Android Studio中,从Refactor菜单中选择Migrate to AndroidX ...
  2. 如果迁移失败,请更好地检查将项目备份为zip文件的选项,
  3. 然后在单击" 迁移"后,您将选择保存zip备份的位置.

现在我能够毫无问题地构建到目前为止.


我的设置

安卓3.2.1工作室
JRE:1.8.0_152释放-1136-B06 x86_64的
JVM:OpenJDK的64位服务器VM通过JetBrains公司
的MacOS 10.13.6


Ahm*_*deh 7

可以使用add in build.gradle(app)(由TheStrikeBone回答)

android {
    packagingOptions {
        exclude 'META-INF/proguard/androidx-annotations.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

或将android.arch.work版本降级为1.0.0-alpha08

dependencies {
    implementation 'android.arch.work:work-runtime:1.0.0-alpha08'
}
Run Code Online (Sandbox Code Playgroud)


Gat*_*agu 5

将此添加到我的应用程序 build.gradle 文件解决了我的问题。

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'
  }
}
Run Code Online (Sandbox Code Playgroud)