Подтвердить что ты не робот

Андроид манифест слияния не удалось, gms play services/firebase

Я пытаюсь добавить firebase в свое приложение, используя firebaseUI. Как говорится в документах, я использовал соответствующие gms: play-services (11.0.4) с версией firebaseUI (2.2.0) Когда я синхронизую файлы gradle, я получаю следующую ошибку:

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute meta-data#[email protected] value=(26.0.0) from [com.android.support:support-v13:26.0.0] AndroidManifest.xml:28:13-35
    is also present at [com.android.support:customtabs:25.4.0] AndroidManifest.xml:25:13-35 value=(25.4.0).
    Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:26:9-28:38 to override.

Это мой файл gradle:

android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
    applicationId "com.test.test"
    minSdkVersion 21
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])


compile 'com.android.support:appcompat-v7:26.0.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:cardview-v7:26.0.0'
compile 'com.android.support:support-v13:26.0.0'
compile 'com.android.support:design:26.0.0'
compile 'com.android.support:recyclerview-v7:26.0.0'

//firebase
compile 'com.google.android.gms:play-services-auth:11.0.4'
compile 'com.google.firebase:firebase-core:11.0.4'
compile 'com.google.firebase:firebase-auth:11.0.4'
compile 'com.google.firebase:firebase-database:11.0.4'
compile 'com.google.firebase:firebase-storage:11.0.4'
compile 'com.firebaseui:firebase-ui:2.2.0'

testCompile 'junit:junit:4.12'
}

//firebase
apply plugin: 'com.google.gms.google-services'

Я убедился, что все версии обновлены и что они все одинаковые. Не могу понять, в чем проблема?

4b9b3361

Ответ 1

Я решил проблему, добавив:

    configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '26.0.0'
            }
        }
    }
}

отсюда.

В подсказке рекомендуется добавлять инструменты: replace = "android: value" 'в метаданные, но это вызывает другую ошибку, поэтому im идет с решением выше

Ответ 2

Я решил это, добавив это в AndroidManifest.xml в <application> в самом низу:

<meta-data 
  tools:node="replace"
  android:name="android.support.VERSION"
  android:value="26.1.0"  // <- The max version you see in the error message. For me it was 26.1.0
/>

Затем добавьте эти два атрибута в <manifest... >:

xmlns:tools="http://schemas.android.com/tools"
tools:node="replace"

Ответ 3

Это происходит потому, что конфликтуют две версии вспомогательных библиотек. Кроме того, вы объявили

buildToolsVersion "26.0.1"

и в зависимости, версия 26.0.0

compile 'com.android.support:design:26.0.0'

Просто измените версию библиотеки поддержки на 26.0.1, и она будет работать нормально. Я сделал то же самое, работал безупречно в моем случае.

Ответ 4

добавить эту строку в конец уровня приложения gradle file

apply plugin: 'com.google.gms.google-services'

Ответ 5

Я смог решить, пытаясь разобраться compile 'com.android.support:appcompat-v7:26.0.0' и добавление библиотек вручную, которые, по его словам, были неправильными, например

compile 'com.android.support:cardview-v7:26.0.0'
compile 'com.android.support:animated-vector-drawable:26.0.0'
compile 'com.android.support:customtabs:26.0.0'

Ответ 6

добавьте эту строку в свой манифест

 <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"
        tools:replace="android:value" />

точно так же, как показано внутри тега "application".

Ответ 7

Этот тип ошибки возник из-за различных библиотек, добавленных вами. При добавлении библиотек убедитесь, что все они имеют одинаковую версию и работают безупречно друг с другом.

Ответ 8

Это происходит, когда вы используете разные версии одной и той же библиотеки для реализации в build.gradle модуля приложения. Вы можете решить эту проблему, внедрив те же версии библиотеки.

Если проблема не устранена, добавьте следующий код в конец build.gradle (модуль приложения)

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.3.0'
            }
        }
    }
}