PNG-Signatur konnte nicht gelesen werden: Datei beginnt nicht mit PNG-Signatur
Lesezeit: 4 Minuten
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
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
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.
Dies war auch unsere Hauptursache – der Grafikdesigner hat versehentlich ein JPEG mit der Erweiterung .PNG gespeichert.
– Karl Anderson
18. Juni 2018 um 22:34 Uhr
aber dieses Bild ist in Android-Bibliotheken und nicht für Projekte!
– MHSFisher
2. Juli 2019 um 10:53 Uhr
@MHSFisher Wenn Sie die Entwickler dieser Bibliothek melden können, tun Sie dies, ansonsten prüfen Sie, ob Sie das Bild durch ein eigenes Standardbild ersetzen können.
– Mahdi-Malv
2. Juli 2019 um 11:44 Uhr
Das war auch bei unserem Projekt das Problem. Benennen Sie die Dateierweiterungen in .jpg um und verwenden Sie dann Paint 3D, um die Bilderweiterungen in .png zu konvertieren
– Winter-MC
20. Juni 2021 um 10:35 Uhr
Diego Venâncio
Schritte
Im build.gradle
aaptOptions { cruncherEnabled = falsch
}
Inhalt darin löschen C:\Users\.gradle\caches
Starten Sie Android Studio neu
Gerade gefolgt Schritt 1 und Problem gelöst, danke @DiegoVenâncio, für die Rettung meines Tages positiv bewertet.
Das hat bei mir funktioniert, der Fehler ist sehr verwirrend, weil es so aussieht, als wären Ihre Dateien keine PNGs, wenn sie es sind. In Wahrheit knirscht es sie, das ist das Problem. Da ich andere Sachen crunchen kann und nur pngs das Problem sind, ziehe ich deine Lösung der vor cruncherEnabled Ausführung.
– Elliptische
9. Dezember 2021 um 1:05 Uhr
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