设置注释处理器会产生META-INF / DEPENDENCIES问题

时间:2018-11-17 18:04:12

标签: android android-gradle build.gradle annotation-processing

我正在尝试处理此错误(在更新Android Studio中的错误之前从未遇到过):

  

注释处理器必须立即显式声明。发现对编译类路径的以下依赖关系包含注释处理器。请将它们添加到注释处理器配置中。     -auto-value-1.4.jar(com.google.auto.value:auto-value:1.4)   或者,设置    android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true以继续先前的行为。请注意,此选项已弃用,以后将被删除。   有关更多详细信息,请参见https://developer.android.com/r/tools/annotation-processor-error-message.html

所以我添加了一个注释处理器:annotationProcessor 'com.google.auto.value:auto-value:1.4'

现在,显示一个新错误:

  

发现有多个文件具有与操作系统无关的路径“ META-INF / DEPENDENCIES”

问题

我了解到我应该更改包装选项(More than one file was found with OS independent path 'META-INF/LICENSE' + Error : More than one file was found with OS independent path 'META-INF/LICENSE' +等)。

但是,有没有一种方法可以解决第一个问题,而无需在我的App build.gradle上进行一些更改即可触发第二个问题?会更好。

build.gradle(应用程序级别)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.example.x.x"
        minSdkVersion 26
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        renderscriptTargetApi 26
        renderscriptSupportModeEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.google.firebase:firebase-admin:6.5.0'
    implementation 'com.android.support:cardview-v7:27.1.1'
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    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 'com.github.mancj:MaterialSearchBar:0.7.6'

    annotationProcessor 'com.google.auto.value:auto-value:1.4'
}

1 个答案:

答案 0 :(得分:2)

您可以完全排除文件,也可以将文件限制为一次:

android {

    ...
    packagingOptions {
        // pickFirst "META-INF/DEPENDENCIES"
        exclude "META-INF/DEPENDENCIES"
    }
}