Fehler: com.android.tools.aapt2.Aapt2Exception: AAPT2-Fehler: Überprüfen Sie die Protokolle auf Details

136

Dies ist die Ausgabe meiner Gradle-Konsole. Ich kann mein Projekt nicht erstellen

D:\Android Projects\....\app\src\main\res\layout\topic_view_header.xml
Error:error: resource attr/?? (aka -packagename- :attr/??) not found.
Error:error: resource attr/?? (aka -packagename-:attr/??) not found.
Error:error: resource attr/?? (aka -packagename-:attr/??) not found.
Error:resource attr/?? (aka -packagename-:attr/??) not found.
Error:resource attr/?? (aka -packagename-:attr/??) not found.
Error:resource attr/?? (aka -packagename-:attr/??) not found.
Error:failed linking file resources.
Error:java.util.concurrent.ExecutionException: 
java.util.concurrent.ExecutionException: 
com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException: 
com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for 
details
Error:Execution failed for task ':app:processDebugResources'.
> Failed to execute aapt
Information:BUILD FAILED in 27s
Information:11 errors
Information:0 warnings

Android Studio 3.0 RC 2

Zeeshan Ali
quelle
Siehe diese Frage
Enzokie
Sie können versuchen, die AssembleDebug-Task auszuführen, um das Problem zu identifizieren. Weitere Informationen finden Sie hier stackackflow.com/a/47941174/1573414
AnteGemini

Antworten:

112

Update 2 (Folgen Sie diesem Ansatz)

Du solltest das jetzt nicht tun. Beheben Sie stattdessen alle Fehler. Dies ist nur eine Problemumgehung, bis sie entfernt wird. Danach müssen Sie Fehler sowieso manuell beheben.

Versuchen Sie, Ihr Gradle-Plugin auf zu aktualisieren 3.3.0-alpha06 zu überprüfen, ob dies Ihr Problem behebt.

Update 1:

Probleme mit Nicht-ASCII-Zeichen wurden jetzt im AAPT2- und Android-Gradle-Plugin behoben (yay!). Anstatt AAPT2 jetzt zu deaktivieren, können Sie einfach das Android Gradle Plugin Version 3.2.0-alpha11 oder höher verwenden und dieser Fehler sollte nicht mehr auftreten.

Ursprüngliche Antwort

Aapt2 ist standardmäßig aktiviert, wenn Sie das Android-Plugin für Gradle 3.0 verwenden.

Dies ist zum

Verbesserung der inkrementellen Ressourcenverarbeitung

wie hier angegeben .

Wenn Sie jedoch Probleme damit haben, können Sie zur vorherigen Version zurückkehren, indem Sie diese hinzufügen gradle.properties

android.enableAapt2=false
Yashasvi
quelle
aber danach gibt es ein Problem beim Ausführen des androidTest. Es gibt den Fehler Klasse nicht gefunden: "com.app.someapp.TheTestClass" Leere Testsuite. Siehe hier stackoverflow.com/questions/47969959/…
K.Os
29
Nach dieser Aktion bekam ich diese NachrichtProcess 'command 'D:\Android\sdk\Sdk\build-tools\27.0.3\aapt.exe'' finished with non-zero exit value 1
AN
1
Probleme mit Nicht-ASCII-Zeichen wurden jetzt im AAPT2- und Android-Gradle-Plugin behoben (yay!). Anstatt AAPT2 jetzt zu deaktivieren, können Sie einfach das Android Gradle Plugin Version 3.2.0-alpha11 oder höher verwenden und dieser Fehler sollte nicht mehr auftreten.
Izabela Orlowska
2
Es funktioniert, aber ich bekam die Nachricht:The option 'android.enableAapt2' is deprecated and should not be used anymore. Use 'android.enableAapt2=true' to remove this warning. It will be removed at the end of 2018..
Mikemike
1
VERWENDEN SIE DIESES NICHT! Das Deaktivieren neuer Funktionen wird das Projekt auch in Zukunft beschädigen. Wie Pranav Karnik sagte, ist es veraltet und soll entfernt werden: Dies ist nur eine Problemumgehung, bis es entfernt wird. Danach müssen Sie Fehler sowieso manuell beheben.
Zoe
102

AKTUALISIEREN

Eine neue Version von Gradle und Android-Gradle-Plugin ist verfügbar, die diese Probleme behebt.

build.gradle (oberste Ebene)

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
    }
}

gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-all.zip

VORHERIGE ANTWORT

Wenn Sie AAPT2 deaktivieren, verbergen Sie nur das eigentliche Problem.

Bitte beachten Sie, dass dies AAPT1möglicherweise in Zukunft entfernt wird, weshalb Sie zur Verwendung gezwungen sind AAPT2. Tatsächlich ist der Migrationsleitfaden nicht schwer zu befolgen, da Sie nicht sehen, dass so viele Änderungen gleichzeitig vorgenommen werden. Dies ist zukunftssicher.

Elementhierarchien im Android-Manifest

In früheren Versionen von AAPT werden Elemente, die in falschen Knoten im Android-Manifest verschachtelt sind, entweder ignoriert oder führen zu einer Warnung. Betrachten Sie beispielsweise das folgende Beispiel:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.myname.myapplication">
   <application
       ...
       <activity android:name=".MainActivity">
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
           <action android:name="android.intent.action.CUSTOM" />
       </activity>
   </application>
</manifest>

Daher müssen Sie zuerst überprüfen, ob Sie wirklich der richtigen Manifeststruktur folgen, wie unten gezeigt.

Manifest Dateistruktur

Das folgende Codefragment zeigt die allgemeine Struktur der Manifestdatei und jedes darin enthaltenen Element. Jedes Element wird zusammen mit all seinen Attributen vollständig in einer separaten Datei dokumentiert.

<manifest>

    <uses-permission />
    <permission />
    <permission-tree />
    <permission-group />
    <instrumentation />
    <uses-sdk />
    <uses-configuration />  
    <uses-feature />  
    <supports-screens />  
    <compatible-screens />  
    <supports-gl-texture />  

    <application>

        <activity>
            <intent-filter>
                <action />
                <category />
                <data />
            </intent-filter>
            <meta-data />
        </activity>

        <activity-alias>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </activity-alias>

        <service>
            <intent-filter> . . . </intent-filter>
            <meta-data/>
        </service>

        <receiver>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </receiver>

        <provider>
            <grant-uri-permission />
            <meta-data />
            <path-permission />
        </provider>

        <uses-library />

    </application>

</manifest>
Enzokie
quelle
7
@ Downvoters pls. genau erklären, was mit dieser Antwort falsch ist, damit ich ansprechen kann?
Enzokie
Hallo Enzokie, ich habe die gleiche aapt2-Ausnahme. Ich aktualisiere die compileSdkVersion von 21 auf 26 und stürze dann aapt2 ab. Wissen Sie, wo ich das Fehlerprotokoll gefunden habe?
Ninja
@ Ninja Sie können das Protokoll in der Gradle-Konsole überprüfen, es ist das gleiche wie bei Logcat.
Enzokie
3
Sie haben keine Lösung angegeben, sondern nur eine Theorie hinter der Ursache, die möglicherweise relevant ist oder nicht.
Chris - Jr
1
@AhamadullahSaikat hast du einen ähnlichen Stacktrace wie OP?
Enzokie
20

Ich hatte einen Fehler in meinem XML-Layout. Überprüfen Sie daher Ihr XML-Layout auf Fehler.

Benjamin Ronneling
quelle
1
Sollte der Fehler in diesem Fall nicht etwas spezifischer sein?
Ewoks
1
Leider keine @Ewoks. Dieser genaue Fehler wird ausgelöst, wenn Ihre XML-Layoutzeichenfolgen Sonderzeichen enthalten.
SH7890
13

Überprüfen Sie die Registerkarte Gradle-Konsole in Android Studio (standardmäßig in der unteren rechten Ecke). In meinem Fall gab es folgende Fehler:

C:\Users\Jozef Bar??k\.gradle\caches\transforms-1\files-1.1\appcompat-v7-25.4.0.aar\d68bb9d2059935a7891196f4dfb81686\res\drawable-hdpi-v4\abc_ic_menu_share_mtrl_alpha.png: error: file not found.

Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
:app:mergeDebugResources FAILED

Ich habe das Problem behoben, bei dem Gradle-Benutzer ohne weiße Zeichen oder Sonderzeichen an einen anderen Ort versetzt wurden:

C:\Android\.gradle

Sie können die Einstellung " Dienstverzeichnispfad " im Dialogfeld "Gradle-Einstellungen" konfigurieren. In meinem Fall war es notwendig, das alte .gradle-Verzeichnis am vorherigen Speicherort zu löschen und Android Studio neu zu starten.

Jozef
quelle
Für mich war das Problem, dass der Dateiname beim Ausführen des Builds als Dienst zu lang wurde. C: \ Windows \ System32 \ config \ systemprofile \ .gradle \ .......... set GRADLE_USER_HOME = d: \. gradle behoben das Problem (in meinem Fall als Systemumgebungsvariable)
Marc
Vielen Dank, das hat mir geholfen, mein Problem zu lösen, da ich ein lateinisches "é" in meinem Serviceverzeichnispfad hatte.
Jean-Sébastien Gervais
1
Nach Android Studio 3.1 wurde die Registerkarte Gradle-Konsole entfernt. Es befindet sich jetzt auf der Registerkarte Erstellen. Klicken Sie auf die Schaltfläche "Ansicht umschalten" (auf der Registerkarte "Erstellen" links unter der Hammer-Schaltfläche), um die Ansicht in die rohe Gradle-Ausgabe zu ändern und den tatsächlichen Fehler
anzuzeigen
8

Mein Problem war auf einen Bilddateinamen zurückzuführen, der mit .9.png endet . Ich habe das Ende in .png geändert und das Problem ist verschwunden. Ich habe den Hinweis von der Stapelverfolgung in der Gradle-Konsole erhalten: Die obere Nachricht lautete "Ausführung für Aufgabe fehlgeschlagen: app: mergeDebugResources " und die untere Nachricht lautete "com.android.builder. Png .AaptProcess $ NotifierProcessOutput.out“

Ich freue mich auf den Tag, an dem Gradle weitere hilfreiche Fehlermeldungen ausgibt ...

Samil
quelle
8

Ich hatte gerade dieses Problem, als ich versuchte, Datenbindung zu verwenden und das Layout-Tag zu deklarieren. Ich weiß, dass es etwas spät ist, aber um jemandem zu begegnen, der auf dieses Problem stößt, habe ich das Problem nach so vielen Versuchen behoben, dass in Ihrem Root-Layout, wenn Sie keine Datenbindung verwenden, beispielsweise dies gesagt wird

  <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">     </android.support.constraint.ConstraintLayout>

entferne das

xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"

und setzen Sie es einfach auf Ihr Layout-Tag ( wenn Sie Datenbindung verwenden )

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

</layout>

und hoffentlich wird es funktionieren. Das android.enableAapt2=falsehat bei mir nicht funktioniert, daher muss ich alles entfernen und herausfinden, warum ich den Fehler erhalte, wenn ich das Layout-Tag platziere und die Datenbindung verwende. Daher habe ich die Lösung gefunden. Ich hoffe es hilft

CodeAndWave
quelle
1
Danke Alter! Du hast eine Stunde für mich gespart.
Siamak SiaSoft
1
Danke Alter! Du hast zwei Stunden für mich gespart!
13.
7

Das gleiche Problem hier haben. Wie von @Izabela Orlowska hervorgehoben, wird dieses Problem höchstwahrscheinlich durch Sonderzeichen im Pfad (Android Grandle-Dateien, Ressourcen usw.) verursacht.

Für mich: Der říName des Ordners hat alle Probleme verursacht. Stellen Sie sicher, dass die Pfade keine Sonderzeichen enthalten. Das Deaktivieren von AAPT2 ist nur eine vorübergehende "Lösung". Ihr Projektpfad enthält Nicht-ASCII-Zeichen android studio

Jiří
quelle
5

Ich habe den FEHLER in drei Schritten behoben.
1. Ich habe nach dem Problem gesucht
. QUELLE 2. Wenn die richtige Zeichenfolge / der richtige Text angegeben wurde, war dies die URSACHE.
3. Ich habe das Projekt bereinigt. Sie finden es unter BUILD.
Mein Projekt

Bukunmi
quelle
1
Dank half mir, meine Probleme zu identifizieren!
Apple Appala
5

Da die Unterstützung für AAPT (1) irgendwann in der Zukunft veraltet sein wird, ist es gut, den Grund für den von Ihnen gemeldeten Fehler zu ermitteln.
Könnten Sie den Inhalt der Datei \ app \ src \ main \ res \ layout \ topic_view_header.xml bereitstellen? Aufgrund der Fragezeichen ist es möglich, dass Sie Nicht-ASCII-Zeichen verwenden, mit denen AAPT2 immer noch Probleme hat. Wenn es sich tatsächlich um Nicht-ASCII-Zeichen handelt, folgen Sie bitte dem Fehler unter https://issuetracker.google.com/68262818 .

Aktualisieren : Das Problem wurde in Android Gradle Plugin Version 3.2.0-Alpha11 oder neuer behoben.

Izabela Orlowska
quelle
Bitte sehen Sie hier stackoverflow.com/questions/47971366/…
K.Os
@Konrad 404, @izabela immer noch das gleiche Problem auf Gradle 4.1
Ajay Pandya
@ AjayPandya das ist Gradle-Version, müssen Sie die Android Gradle Plugin-Version aktualisieren. In der build.gradle-Datei Ihres Projekts müssen Sie aktualisieren, um zu haben classpath 'com.android.tools.build:gradle:3.2.0-alpha11'.
Izabela Orlowska
4

Wichtiges Update

Fügen Sie diese Zeile nicht als andere Antwort zu Ihrem Projekt hinzu. Weil es bereits in neuerem Gradle gelöst ist Versionen .

Sie können Ihre Build-Gradle-Version auf Projektebenebuild.gradle auf den neuesten Stand bringen.

buildscript {
    dependencies {
        // choose latest if available
        classpath 'com.android.tools.build:gradle:3.3.0-alpha06'
    }
}

und gradle-wrapper.properties

// choose latest if available
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip

Das ist alles! Synchronisieren und ausführen, Bingo!

Mehr Info Android-Dokumentation

Wenn Sie hinzufügen, erhalten Sie eine Warnung android.enableAapt2=false

WARNUNG: Die Option 'android.enableAapt2' ist veraltet und sollte nicht mehr verwendet werden. Verwenden Sie 'android.enableAapt2 = true', um diese Warnung zu entfernen. Es wird Ende 2018 entfernt.

Khemraj
quelle
Dies ist die beste Antwort, die ich bisher gesehen habe, denn wenn Sie versuchen, aapt2 zu deaktivieren, wird zum Zeitpunkt des Schreibens ein Fehler ausgegeben. Alles, was ich tun musste, war, gradle zu aktualisieren, und nach Aktualisierungen sagte mir gradle, was der eigentliche Fehler war Tatsächlich durfte ich gradle-4.8 nicht in der Datei gradle-wrapper.properties verwenden. Ich musste die neueste Version 4.9 verwenden, auch im Pfad für Abhängigkeiten. Ich musste gradle verwenden: 3.3.0-alpha06
Kingston Fortune
Ich werde den ursprünglichen Beitrag aktualisieren, damit er leichter zu verfolgen ist.
Kingston Fortune
In welche Gradle-Datei muss ich android.enableAapt2 = false schreiben ?
Niki
@nTri Suchen Sie nur nach dem Lösungsteil der Antwort, den Sie nicht hinzufügen müssen android.enableAapt2=false.
Khemraj
Freut
mich,
2

Ich bin auch auf diesen Fehler gestoßen. Für mich war es, als ich das Ziel-SDK von 26 auf 25 änderte. Ich konnte das Problem beheben, indem ich die Appcompat-Abhängigkeitsversion von änderte

implementation 'com.android.support:appcompat-v7:26.1.0'

zu

implementation 'com.android.support:appcompat-v7:25.4.0'

Dadurch kann der Compiler auf die Styling-Attribute zugreifen, die er derzeit nicht finden kann. Dies wird das Problem tatsächlich beheben, anstatt das eigentliche Problem zu maskieren, wie Enzokie vorgeschlagen hat.

hlbaker
quelle
2

In meinem Fall habe ich einen falschen Farbcode verwendet, #CC00000der ungültig ist, weil er 7-stellig ist, aber der Farbcode sollte 3 oder 6 oder 8-stellig plus # Präfix haben

Suraj Vaishnav
quelle
2

Das Deaktivieren des AAPT2-mght-Problems in der Weiterentwicklung. In meinem Fall wurde der Fehler beim Erstellen des App-Symbols generiert.

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="108dp"
    android:height="108dp"
    android:viewportWidth="Infinity"
    android:viewportHeight="Infinity">
<path android:fillColor="#26A69A"
      android:pathData="M0,0h108v108h-108z"/>
<path android:fillColor="#00000000" android:pathData="M79,19L79,89"
      android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>

Ich löse es, indem ich diese Zeile entferne

    android:viewportWidth="Infinity"
    android:viewportHeight="Infinity"
TABZ
quelle
2

Wie @Izabela Orlowska betonte: In meinem Fall trat das Problem aufgrund einiger Dateien auf, die nicht im Gradle-Cache-Ordner gefunden wurden. (Windows-Betriebssystem)

Der Standard-Gradle-Pfad befand sich in meinem Benutzerordner. Der Pfad enthielt Umlaute und ein Leerzeichen. Ich zog den gradle Ordner durch Einstellung GRADLE_HOMEund GRADLE_USER_HOMEUmgebungsvariable zu einem gewissen neu erstellten Ordner ohne Umlaute oder Leerzeichen im Pfad. Dies hat das Problem für mich behoben.

Robin J.
quelle
2

Ich habe alles versucht, was hier und auf vielen anderen Websites vorgeschlagen wurde. Schließlich habe ich herausgefunden, dass das Problem bei Bitdefender liegt aapt blockiert.

Wenn Sie Bitdefender installiert haben, müssen Sie aapt & aapt2 " Application Access " aktivieren " einzeln .

Hoffe das ist von Nutzen.

mcadamm4
quelle
2

Wenn Sie diesen Fehler gesehen haben, nachdem Sie versucht haben, einzelne Android-Implementierungstests oder Testklassen (durch Klicken auf das Ausführungssymbol in der Gosse) in einem Kotlin-Projekt in Android Studio 3.0.1 auszuführen, können Sie den Fehler umgehen, indem Sie stattdessen das ausführen vollständiges Testpaket (indem Sie mit der rechten Maustaste auf das Testpaket klicken und "Tests ausführen in ..." auswählen).

In Android Studio 3.0.1 ist ein Fehler bekannt, der dazu führt, dass die IDE Kotlin-Implementierungstests als reguläre JUnit-Tests ausführt, wodurch die Fehlermeldung des OP auf meinem Computer angezeigt wird. Der Fehler wird unter https://issuetracker.google.com/issues/71056937 verfolgt . Es scheint in Android Studio 3.1 Canary 7 behoben worden zu sein.

Andrew Marshall
quelle
2

Wie von anderen vorgeschlagen,

android.enableAapt2=false

ist die häufigste Lösung.

In meinem Fall war der Fehler jedoch auf unterschiedliche Versionen in compileSdkVersion und buildToolsVersion zurückzuführen .

Stellen Sie sicher, dass die Hauptversion gleich bleibt.

VickyAbishek
quelle
"compileSdkVersion und buildToolsVersion" ist das erste, was überprüft werden muss
vgulkevic
Verwenden Sie dieses android.enableAapt2 = false nicht,
Saurabh Gaddelpalliwar
Verwenden Sie dieses android.enableAapt2 = false nicht, dies ist keine Lösung. Finden Sie den Fehler heraus, der genau in Ihrem Feld "Ausgabe erstellen" angezeigt wird. Klicken Sie auf "Ansicht umschalten", um den genauen Fehler oder die Ausnahme zu ermitteln. Verwenden Sie compileSdkVersion 28 buildToolsVersion "28.0.3" und befolgen Sie die Anweisungen zum Löschen oder Aktualisieren externer Bibliotheken oder Abhängigkeiten
Saurabh Gaddelpalliwar
2

Ich habe diesen Fehler erhalten, als der Projektname sehr lang war und der Speicherort, an dem ich das Projekt gespeichert habe, hinzugefügt wurde. Das Verschieben des Projekts an einen anderen Speicherort, sodass die Dateinamen das Systemlimit nicht überschreiten, hat den Fehler für mich behoben.

C:\Users\<UserName>\AndroidStudioProjects\From Github\AdvancedAndroid_Emojify-TLIB.02-Exercise-DetectFaces\AdvancedAndroid_Emojify-TLIB.02-Exercise-DetectFaces\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
Error:error: file not found.
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:mergeDebugResources'.
Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Tanusha Kamat
quelle
2

Ich hatte auch ein solches Problem, das Original ist die Taskleiste meines Computers in diesem Pfad:

C: \ Benutzer \ 'Sonderzeichen erscheinen' \ .android erschien auf Chinesisch,

und jetzt habe ich den Pfad geändert zu:

C: \ Benutzer \ hjc \ .android.

Der Grund ist das Problem der Sonderzeichen. Aus diesem Grund führt es zu Problemen mit der appt2Exception von Kies

George Williams
quelle
Dies wurde jetzt behoben. Wenn Sie auf das Android Gradle Plugin 3.2.0-alpha11 oder neuer aktualisieren, funktioniert es jetzt mit Nicht-ASCII-Zeichen im Dateipfad.
Izabela Orlowska
2

Ich hatte ein sehr ähnliches Problem. Es wurde gelöst, indem der Cache von gradle (~ / .gradle / caches unter Linux) gelöscht wurde, wodurch Android Studio gezwungen wurde, alles erneut herunterzuladen und neu zu generieren.

Happylego91
quelle
2

Das Schließen des Projekts und der Neustart von Android Studio haben dieses Problem für mich behoben.

Während des Neustarts hat Android Studio benachrichtigt, dass fehlende SDKs heruntergeladen werden müssen. Sobald dies behoben war, wurde das Problem behoben.


quelle
2

Ich bin mir nicht sicher, ob dies für Sie noch beantwortet wurde, aber erlauben Sie mir, abzuwägen. Ich war kürzlich mit einem ähnlichen Problem konfrontiert und konnte das genaue Problem auf der Registerkarte "Erstellen" neben dem Logcat ermitteln. Mein Problem wurde durch einen Fehler in der Schriftfamilie im XML verursacht. Ich verwende die neueste Version von Android Studio mit dem Update vom März 2018.

Beast77
quelle
2

Stellen Sie sicher, dass Sie gültige Dateitypen in Ihrem src/main/res/rawVerzeichnis verwenden. In meinem Fall hatte ich eine .mov-Datei zusammen mit einer Reihe anderer Dateien in mein res / raw-Verzeichnis kopiert. Ich vermute, das Problem war, dass aapt versuchte, die .mov-Datei zu verarbeiten, und nicht wusste, was er damit anfangen sollte.

Tash Pemhiwa
quelle
2

Ich hatte genau das gleiche Problem: Nach dem Update auf Android Studio 3.1.2 wurde mein Projekt nicht mit einem AAPT2-Fehler kompiliert, der mir einige meiner Drawables mitteilte, auf die verwiesen wird styles.xml nicht gefunden wurden. Das Deaktivieren von AAPT2 ist keine Lösung mehr, da die Einstellung veraltet ist und Ende 2018 entfernt wird.

Culprit war eine leere Zeile kurz vor der XML-Dekleration in einer völlig unabhängigen layout.xmlDatei ... Die layout.xmlDatei begann also wie folgt :

//empty line//
<?xml version="1.0" encoding="utf-8"?>

Die leere Zeile wurde entfernt und alles funktionierte wieder wie ein Zauber. Unglaublich und unwahrscheinlich, aber wahr.

Android Studio gab tatsächlich eine Warnung aus, da die Datei nicht mit der XML-Dekleration begann (wegen der leeren Zeile). Die Warnung ist jedoch nur sichtbar, wenn die Datei im Editor geöffnet wird.

Andy
quelle
2

Diese Fehlermeldung (AAPT2-Fehler: Überprüfen Sie die Protokolle auf Details) ist nicht hilfreich, da sie Ihnen nicht sagt, wo das eigentliche Problem liegt.

In meinem Fall lag es an einer fehlenden XML-Zeichnungsdatei für Ressourcen.

error: failed linking file resources.

org.gradle.tooling.BuildException: Failed to process resources, see aapt output above for details.

Ich habe es nur herausgefunden, weil ich die Änderungen in der XML-Datei rückgängig gemacht habe, und diesmal habe ich eine hilfreichere Nachricht erhalten:

error: resource drawable/ic_filter_off (aka com.xxx:drawable/ic_filter_off) not found.

Message{kind=ERROR, text=error: resource drawable/ic_filter_off (aka com.xxx:drawable/ic_filter_off) not found., sources=[C:\code\xxx\app\src\main\res\layout\app_bar_main.xml:69], original message=, tool name=Optional.of(AAPT)}
Live-Liebe
quelle
2

In meinem Fall bestand das eigentliche Problem darin, dass die generierte Datei ic_launcher_foreground.xml nach dem Generieren von Image Asset zum Generieren des Launcher-Mipmap-Symbols für mein Projekt einen Fehler enthielt (falsch generiert wurde). Am Ende der Datei fehlte das schließende XML-Tag, </ vector> fehlte.

user3098756
quelle
2

Überprüfen und versuchen Sie unten Dinge. Problem sollte behoben sein.

  1. Überprüfen Sie zunächst Ihr Protokoll am unteren Rand des Erstellungsfensters, ob ein Fehler im Zusammenhang mit der Projektanzeige vorliegt oder nicht. Wenn ein Fehler angezeigt wird, beheben Sie alle diese Probleme. Jetzt erstellen und erneut ausführen, um alle Fehler zu beheben. Es wird das Problem mit aapt2 beseitigen, ohne das Android Gradle Plugin auf 3.2.0 zu ändern.

  2. Zweitens, wenn im Build-Protokoll kein projektbezogener Fehler angezeigt wird, aber dennoch ein aapt2-Fehler angezeigt wird, können Sie ihn beheben, indem Sie die folgenden Schritte ausführen.

Aktualisieren Sie Ihr Android Gradle Plugin in Ihrer build.gradleDatei auf Projektebene wie folgt :

classpath 'com.android.tools.build:gradle:3.2.0-alpha13'

Jetzt aktualisieren android.enableAapt2=true. Dann überprüfen und erstellen Sie Ihr Projekt.

Jeder dieser Schritte sollte funktionieren, um Probleme im Zusammenhang mit der Anpassung zu beheben.

0xAliHn
quelle
2

Wenn Sie Kotlin verwenden, wird aufgrund einiger Fehler in XML-Dateien ein Fehler angezeigt. In Kotlin ist es sehr schwer, XML-Fehler zu finden. Um das genaue Fehlerprotokoll zu kennen, führen Sie den folgenden Befehl in Android Studio Terminal aus und es ist einfach, die Fehler zu beheben.

./gradlew clean
./gradlew assemble
Naveen Kumar M.
quelle
Die Verwendung dieser im Terminal zeigt tatsächlich den genauen Fehler. In meinem Fall war es ein leerer Sichtbarkeitsattr. Danke dir!
Rami Jemli
2

Ich habe den gleichen Fehler AAPT2-Fehler: Überprüfen Sie die Protokolle auf Details, und ich habe die oben genannten Lösungen angewendet. Wie bei der gängigsten Lösung wurde mir gradle.properties geöffnet und Zeile hinzugefügt

android.enableAapt2 = false

zur Lösung, aber ich habe einen Fehler erhalten. Prozess 'Befehl' D: \ Android \ sdk \ Sdk \ build-tools \ 27.0.3 \ aapt.exe '' beendet mit einem Exit-Wert ungleich Null 1

Aber nach vielen Suchanfragen stellte ich fest, dass es ein Problem in der XML-Datei des Layouts gibt, dass ich Zeilen in der XML-Datei des Layouts wiederholt habe.

xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"

Entfernen Sie Wiederholungszeilen aus der XML-Datei und erstellen Sie das Projekt neu und fertig.

Hetuka Kodekar
quelle
2

Überprüfen Sie folgende Dinge in Ihrem Projekt:

  • Stellen Sie sicher, dass zu Beginn der Datei keine XML-Datei leer ist.

  • Stellen Sie sicher, dass keine zeichnbare Datei Probleme wie Großbuchstaben oder spezielle Symbole im Namen aufweist.

  • Wenn Ihre aapt2.exe ständig fehlt, scannen Sie bitte Ihren gesamten PC. Möglicherweise liegt ein Virus vor, der adb.exp oder aapt2.exe entfernt

Ich hoffe, Sie erhalten eine Lösung.

Pratik Butani
quelle