Установка процессора аннотаций создает проблему с META-INF / DEPENDENCIES - PullRequest
0 голосов
/ 17 ноября 2018

Я пытался справиться с этой ошибкой (которой у меня никогда не было, прежде чем что-то обновлять в Android Studio):

Процессоры аннотаций должны быть явно объявлены сейчас. Следующие зависимости от пути к классам компиляции содержат процессор аннотаций. Пожалуйста, добавьте их в конфигурацию annotationProcessor. - 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'

Вопрос

Я прочитал, что должен изменить параметры упаковки ( Найдено более одного файла с независимым от ОС путем 'META-INF / LICENSE' + Ошибка: найдено более одного файла с независимым от ОС путь 'META-INF / LICENSE' + и т. д.).

Но, вместо этого, есть ли способ решить первую проблему, не вызывая вторую с несколькими изменениями в моем приложении 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 голосов
/ 17 ноября 2018

вы можете либо полностью исключить файл, либо ограничить его одним вхождением:

android {

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