Android Studio-Build-Fehler: manifestMergerXXXX?

Bin ich mit Android Studio 2.0 Beta 3. Ich habe ein Projekt, welches abhängig von einer externen Bibliothek. Wenn ich bauen mit Android Studio, ich bin immer folgende Fehlermeldung:

($my_project_path)/build/intermediates/manifest/tmp/manifestMerger354333932548019277.xml:17:9-36 Error:
Attribute [email protected] value=(false) from [debug] AndroidManifest.xml:17:9-36
is also present at [($library)] AndroidManifest.xml:12:9-35 value=(true)
Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at manifestMerger354333932548019277.xml:7:5-9:19 to override
Error:Execution failed for task ':$(project):processDebugAndroidTestManifest'.
> java.lang.RuntimeException: Manifest merger failed : Attribute [email protected] value=(false) from [debug] AndroidManifest.xml:17:9-36
is also present at [($library)] AndroidManifest.xml:12:9-35 value=(true)
Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at manifestMerger354333932548019277.xml:7:5-9:19 to override

Dies ist sehr seltsam. Android Studio ist, was darauf hindeutet, dass ich die Bearbeiten das Produkt einer zwischen-build-Schritt, um zu bekommen, meine kompilieren zu vervollständigen? Auch, wenn ich einen Blick auf die Quelle AndroidManifest.xml’s in Frage, die Obere-Ebene bereits definiert, die „Werkzeuge-ersetzen -“ Attribut „android:allowBackup“. Kurz gesagt, ich habe keine Ahnung, warum ich immer diese Meldung. Auch mein build funktioniert sehr gut, von der Befehlszeile aus. Irgendwelche Vorschläge?

BEARBEITEN basiert auf Kommentare: Einige Kommentatoren haben darauf hingewiesen, dass ich Folgen müssen, der sehr deutliche Anweisungen in der Fehlermeldung, nur sind diese Kommentatoren fehlen, dass die Fehlermeldung Regie mich zu Bearbeiten zwischenbuilds Produkt.

Sehr klar: Ein zwischenbuilds Produkt ist nicht etwas, dass ein build-system sollte nie, nie, direkt einen Benutzer zu ändern. Es ist per definition etwas, das für die Verwendung des build-Systems allein. Seine einzige zusätzliche Nutzung ist für die Erhaltung des Staates, so dass der Benutzer beheben schlecht baut. Die Tatsache, dass Android Studio ist mir zu sagen, um diese Datei zu ändern ist Beweis dafür, dass etwas ernsthaft kaputt, entweder in Android Studio, oder eher, in meine Konfiguration und/oder build-Skripte. Aber, was?

Zur Klarstellung, hier ist die <application> element aus dem Projekt, enthält die Bibliothek:

<application
    android:label="@string/app_name"
    android:allowBackup="false"
    tools:replace="android:allowBackup">
    <...>
</application>

So wie Sie sehen können, sage ich das sehr element, das Android-Studio beschwert sich über, genau so, wie ich bin angefragt werden. Außer NICHT! Da Android Studio ist zu Fragen, mich zu ändern, die zusammengeführt AndroidManifest.xml – klar, so etwas sollte ich nicht tun, denn es ist ein build-Produkt. Dieses Projekt baut auf all meinen Kollegen “ Maschinen, weil Sie nicht das update auf die neueste Android-Studio. Es ist auf mich jetzt, und ehrlich gesagt, ich denke, das beste, was ich machen kann ist deinstallieren, Android Studio und beginnen.



3 Replies
  1. 6

    Die Fehlermeldung sagt Ihnen, wie Sie das Problem beheben

    Suggestion: add 'tools:replace="android:allowBackup"' to <application> element

    Im Grunde Sie erklärt die allowBackup Manifest-Attribut zweimal. Einmal in der AndroidManifest.xml Datei wieder in die Bibliothek (wohl über gradle).

    FYI in diesem Fall die gradle-Erklärung gewinnen wird.

    • Siehe edits oben.
  2. 0

    Was es sagt, ist, dass die Bibliothek Sie sind darauf angewiesen, hat auch ein ähnlich benanntes Attribut, das verhindert, dass android Zusammenführen, die sich mit Ihrem manifest. Wenn Android baut Ihr apk, es wird Zusammenführen von Manifest-Dateien aus anderen Projekten, und es wird versucht, mischen Sie Sie alle um ein Artefakt herzustellen, für die ein build-Variante. Android ist im Grunde ein Gradle multi-Projekt zu bauen. So haben Sie den Konflikt lösen, sich selbst.

    • Siehe edits oben.
    • Es ist nicht ein Problem mit android studio ich bin mir ziemlich sicher, es ist wie ein Git-Konflikt, müssen Sie den Konflikt auflösen, bevor Sie fortfahren. Ihr problem ist, dass Ihr abhing Bibliothek, das erwähnte Attribut auf true festgelegt ist, aber in Ihrem manifest, es auf false festgelegt ist und das ist eindeutig ein Konflikt, den Sie lösen müssen, für die Zusammenführung
    • Nee, nicht ein git-Konflikt, entweder. Der Fehler ist, die aus einer Datei, die gradle ist die Erstellung, die während des build-Prozesses.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.