
Ooba Elda
Gradle-Build schlägt mit diesem Fehler fehl:
Error:C:\Users\Roman\.gradle\caches\transforms-1\files-1.1\appcompat-v7-26.0.2.aar\bab547c3f1b8061ef9426f524a823a15\res\drawable-xhdpi-v4\abc_btn_switch_to_on_mtrl_00001.9.png failed to read PNG signature: file does not start with PNG signature
Error:java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.internal.aapt.AaptException: AAPT2 compile failed:
Error:Execution failed for task ':app:mergeDebugResources'.
Error: java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.internal.aapt.AaptException: AAPT2 compile failed:
aapt2 compile --legacy -o C:\dev\workspace\android2\MatrixCalculator\app\build\intermediates\res\merged\debug C:\Users\Roman\.gradle\caches\transforms-1\files-1.1\appcompat-v7-26.0.2.aar\bab547c3f1b8061ef9426f524a823a15\res\drawable-xhdpi-v4\abc_btn_switch_to_on_mtrl_00001.9.png
Issues:
- ERROR: C:\Users\Roman\.gradle\caches\transforms-1\files-1.1\appcompat-v7-26.0.2.aar\bab547c3f1b8061ef9426f524a823a15\res\drawable-xhdpi-v4\abc_btn_switch_to_on_mtrl_00001.9.png failed to read PNG signature: file does not start with PNG signature
Einige grundlegende Dinge, die ich versucht habe, um dieses Problem zu lösen:
- Caches ungültig machen/neu starten
- Gradle-Ordner löschen

Mahdi-Malv
Es ist wahrscheinlich ein JPG
umbenannt in a PNG
Datei, keine eigentliche PNG-Datei
Das Problem könnte an der falschen Erweiterung von Bildern liegen.
In meinem Fall war die Datei a JPEG
Bild, aber es wurde gespeichert als PNG
nicht konvertiert. Ändern Sie in dieser Situation die Erweiterung in die echte und konvertieren Sie sie in PNG und versuchen Sie es erneut.
Sie haben zum Beispiel ic_logo.png
aber es ist eigentlich ein JPG-Bild.
Sie sollten es wieder umbenennen in ic_logo.jpg
und verwenden Sie etwas wie Photoshop, um das Bild in das PNG-Format zu konvertieren.

Diego Venâncio
Schritte
-
Im build.gradle
aaptOptions { cruncherEnabled = falsch
}
-
Inhalt darin löschen C:\Users\.gradle\caches
- Starten Sie Android Studio neu
android {
buildTypes {
release {
crunchPngs false // or true
}
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
crunchPngs false // or true
lintOptions {
checkReleaseBuilds false
abortOnError false
}
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Beim Erstellen der .apk-Datei einer Anwendung werden alle Ressourcen analysiert. Wenn eine Ressource ein falsches Format hat oder beschädigt ist, erhalten Sie die Meldung:
PNG-Signatur konnte nicht gelesen werden: Datei beginnt nicht mit PNG-Signatur

Stellen Sie sicher, dass Sie über die richtigen Ressourcen verfügen. Sie können dies überprüfen, indem Sie Ihre Datei öffnen.
Dies tritt aufgrund der falschen Erweiterung auf, die dem Bild gegeben wurde. Zum Beispiel, das Bild ist jpg und die angegebene Erweiterung ist png.
Lösungen:
- Addieren
{ cruncherEnabled = false }
in build.gradle
- Konvertieren Sie das Bild in PNG, anstatt nur die Erweiterung zu ändern.

BennyP
Ich hatte das gleiche Problem, das durch Konvertieren der Bilder in webP von Android Studio gelöst wurde. Klicken Sie mit der rechten Maustaste auf das Bild -> tippen Sie auf In WebP konvertieren
Die Konvertierung übernimmt die Dateiformatierung und reduziert auch die Größe des PNG
Für eine schnelle Lösung, Make SchrumpfenRessourcen zu falsch anstatt wahr in app.gradle Hoffe, das wird helfen. Wenn nicht, dann fügen Sie dies hinzu aaptOptions {cruncherEnabled = false}
9973600cookie-checkPNG-Signatur konnte nicht gelesen werden: Datei beginnt nicht mit PNG-Signaturyes
Die Datei
abc_btn_switch_to_on_mtrl_00001.9.png
ist beschädigt und keine gültige PNG-Datei.– Matt Clark
12. September 2017 um 13:21 Uhr
„Gradle-Ordner löschen“ – welchen bestimmten Ordner haben Sie gelöscht?
– CommonsWare
12. September 2017 um 13:24 Uhr
@CommonsWare die unter C:\Users\Roman\.gradle\caches und die im Projekt
– Ooba Elda
12. September 2017 um 13:25 Uhr
Sie sagen nicht, ob dies eine neue oder eine vorhandene Ressource ist, die dieses Symptom jetzt zeigt. Dies ist ein wichtiges Detail, das in der enthalten sein sollte Hauptteil der Frage selbst.
– Benutzer1531971
12. September 2017 um 13:46 Uhr
Versuchen Sie, die Support-Bibliothek zu erhalten, auf die verwiesen wird developer.android.com/topic/libraries/support-library/… anstelle Ihres lokalen SDK. Sie können über Abhängigkeiten zwingen, eine andere Version anstelle von 26.0.2 zu verwenden, und prüfen, ob das Problem behoben ist. Sieht so aus, als ob Ihr lokales SDK beschädigt ist, wenn das Wegblasen des IDE-Cache immer noch ein Problem darstellt.
– Benutzer1531971
12. September 2017 um 13:56 Uhr