it-swarm.com.de

Android: Fehler beim "Manifest Merger Failed" nach Aktualisierung auf eine neue Version von Gradle

Nachdem ich die Aktualisierung des Projekts auf eine neue Version von Gradle akzeptiert habe, erhalte ich folgende Fehlermeldung:

Error:Execution failed for task ':app:processDebugManifest'.
Manifest merger failed : Attribute meta-data#[email protected] value=(26.0.0-alpha1) from [com.Android.support:cardview-v7:26.0.0-alpha1] AndroidManifest.xml:24:9-38
    is also present at [com.Android.support:design:25.3.1] AndroidManifest.xml:27:9-31 value=(25.3.1).
    Suggestion: add 'tools:replace="Android:value"' to <meta-data> element at AndroidManifest.xml:22:5-24:41 to override.

Wie kann ich dieses Problem lösen? Dies ist die build.gradle-Datei meiner App:

Android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.sample.bookReader"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    ...
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.Android.support:multidex:+'
    compile 'com.Android.support:appcompat-v7:26.0.0-alpha1'
    compile 'com.Android.support:cardview-v7:26.0.0-alpha1'
    compile 'com.Android.support:design:25+'
    compile 'com.jakewharton:butterknife:8.2.1'
    apt 'com.jakewharton:butterknife-compiler:8.2.1'
    ...
}

Und dies ist der build.gradle des Projekts:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:2.3.1'
        classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.8'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "https://www.jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Wie behebe ich diesen Fehler, während die durch die Aktualisierung der Gradle-Version vorgenommenen Änderungen beibehalten werden?

97
tux-world

Fügen Sie dies am Ende Ihres App-Moduls build.gradle ein:

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'
            }
        }
    }
}
188
Vishal

Sie verwenden mehrere Versionen der Android Support Libraries:

compile 'com.Android.support:appcompat-v7:26.0.0-alpha1'
compile 'com.Android.support:cardview-v7:26.0.0-alpha1'
compile 'com.Android.support:design:25+'

Zwei sind 26.0.0-alpha1 und einer verwendet 25+.

Wählen Sie eine konkrete Version und verwenden Sie diese für alle drei. Da Ihre compileSdkVersion keine O ist, verwenden Sie 25.3.1 für alle drei dieser Bibliotheken.

compile 'com.Android.support:appcompat-v7:25.3.1'
compile 'com.Android.support:cardview-v7:25.3.1'
compile 'com.Android.support:design:25.3.1'
84
CommonsWare

Ich habe alle Versionen der Support-Bibliothek auf 25.3.1 geändert und wie ein Zauber gearbeitet:

compile 'com.Android.support:appcompat-v7:25.3.1'
compile 'com.Android.support:design:25.3.1'

Sie müssen auch compileSdkVersion und targetSdkVersion in 25 ändern:

compileSdkVersion 25
targetSdkVersion 25
14
Darush

Sie können herausfinden, welche Bibliothek von einer falschen Version der Unterstützungsbibliothek abhängt, und diese so ausschließen:

compile ('com.stripe:stripe-Android:5.1.1') {
    exclude group: 'com.Android.support'
  }

stripe-Android in meinem Fall.

8
paynd

Ich verwende keine unterschiedlichen Bibliotheksversionen und habe den gleichen Fehler erhalten. Dieser Fehler ist nach dem Entfernen von buildToolsVersion in AS RC 1 aufgetreten. Durch Hinzufügen von tools:node="replace" wurde der Trick ausgeführt. Fügen Sie dies einfach in Ihre manifest.xml in <application ..../>-Block ein:

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

Es passiert mir dasselbe. Siehe Gradle -> Gradle erstellen -> und vergewissern Sie sich, dass die Kompatibilität in den Kompilierungszeilen "app compat" und "support design" übereinstimmt. Sie sollten dieselbe Version haben. 

Um absolut sicher zu sein, dass er problemlos gestartet werden kann, gehen Sie zu Datei -> Projektstruktur -> App, und überprüfen Sie die Eigenschaften der Build-Tools die Ziel-SDK-Version als 25 sowie auf der Registerkarte Flavors. 

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.Android.support.test.espresso:espresso-
   core:2.2.2', {
        exclude group: 'com.Android.support', module: 'support-annotations'
    })
    *compile 'com.Android.support:appcompat-v7:25.3.1'*
    compile 'com.Android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    *compile 'com.Android.support:design:25.3.1'*
}

Das ist was ich gemacht und gearbeitet habe. Viel Glück!

5
  • Aktualisieren Sie Ihre Support-Bibliothek auf die letzte Version 

  • Öffnen Sie Manifest File und fügen Sie es der Manifestdatei hinzu 

  • <uses-sdk tools:overrideLibrary="Android.support.v17.leanback"/>

  • Und zum Recycler hinzufügen in >> build.gradle Module app:

  • compile 'com.Android.support:recyclerview-v7:25.3.1'

  • Und klicken Sie auf: Sync Now 

3
AmmAr Yasser

Ich löse das, indem ich das am Ende meines App-Moduls build.gradle setze:

    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'
        }
    }
  }
}
2
Maryam Azhdari

Die Antwort wird akzeptiert, aber Sie können auch die Bibliotheken anhand Ihrer Projektstruktur definieren. Was Sie tun können, ist: 

  1. Kommentieren Sie alle Bibliotheken, in denen das Problem auftritt 
  2. Springen Sie zu Ihrer Projektstruktur 
  3. Fügen Sie Bibliotheken von dort hinzu und es wird automatisch synchronisiert und das Problem wird behoben.
  4. Wenn das Problem weiterhin besteht, suchen Sie im Fehlerprotokoll nach der gewünschten Bibliothek, nachdem Sie alle oben genannten 3 Schritte ausgeführt haben.

Was passiert ist, sind die vordefinierten Bibliotheken ab jetzt. Ich nehme das appcompat: 26.0.0-alpha1. Es verwendet die ältere Version der Dinge, wenn Sie etwas Neues hinzufügen, und versucht, es mit den alten Dingen aufzulösen. Wenn Sie es aus Ihrer Projektstruktur hinzufügen, wird dasselbe hinzugefügt, jedoch mit den neuen Dingen, um es aufzulösen. Ihr Problem wäre gelöst.

2
Alok

Ich habe ein altes Android-Projekt für das Wear OS aktualisiert. Ich habe diese Fehlermeldung beim Erstellen des Projekts erhalten:

Manifest merger failed : Attribute meta-data#[email protected] value=(26.0.2) from [com.Android.support:percent:26.0.2] AndroidManifest.xml:25:13-35
is also present at [com.Android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0).
Suggestion: add 'tools:replace="Android:value"' to <meta-data> element at AndroidManifest.xml:23:9-25:38 to override.

Mein build.gradle for Wear-App enthält diese Abhängigkeiten:

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.Android.support:wearable:2.4.0'
implementation 'com.google.Android.gms:play-services-wearable:16.0.1'
compileOnly 'com.google.Android.wearable:wearable:2.4.0'}

L&OUML;SUNG:

Das Hinzufügen von implementation 'com.Android.support:support-v4:28.0.0' in die Abhängigkeiten löste mein Problem.

0
Malder

Versuchen Sie, die Metadaten zu löschen und das Projekt neu zu erstellen.

0
Anga Koko

Der Fehler für mich war:

Manifest merger failed : Attribute meta-data#[email protected] value=(26.0.2) from [com.Android.support:percent:26.0.2] AndroidManifest.xml:25:13-35
    is also present at [com.Android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0).
    Suggestion: add 'tools:replace="Android:value"' to <meta-data> element at AndroidManifest.xml:23:9-25:38 to override.

Die Lösung für mich war in meiner Projekt-Gradle-Datei, die ich brauchte, um meine com.google.gms: google-services-Version zu aktualisieren.

Ich habe Version 3.1.1 verwendet:

classpath 'com.google.gms:google-services:3.1.1

Und der Fehler wurde behoben, nachdem ich ihn auf Version 3.2.1 gestoßen hatte:

classpath 'com.google.gms:google-services:3.2.1

Ich hatte gerade alle meine Bibliotheken auf die neueste Version aktualisiert, einschließlich v27.1.1 aller Unterstützungsbibliotheken und v15.0.0 aller Firebase-Bibliotheken, als ich den Fehler sah.

0
Lucy