Не удалось прочитать подпись PNG: файл не начинается с PNG-подписи
Сбой сборки Gradle с этой ошибкой:
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
Некоторые основные вещи, которые я пытался решить эту проблему:
- Недействительные кэши/перезапуск
- Удаление папки Gradle
Ответы
Ответ 1
Возможно, проблема связана с неправильным расширением изображений.
В моем случае файл представлял собой изображение JPEG
, но он был сохранен как PNG
, не преобразованный в. В этой ситуации измените расширение на реальное и преобразуйте его в PNG, затем повторите попытку.
Для примера у вас есть ic_logo.png
, но на самом деле это JPG изображение.
Вы должны переименовать его обратно в ic_logo.jpg
и использовать что-то вроде Photoshop для преобразования изображения в формат PNG.
Ответ 2
Действия
Ответ 3
Создавая .apk приложения, все ресурсы анализируются, если какой-то ресурс имеет неправильный формат или corrup, вы получите сообщение:
.png не удалось прочитать подпись PNG: файл не запускается с PNG подпись
![введите описание изображения здесь]()
Обязательно наличие правильных ресурсов, вы можете проверить это, открыв файл.
Ответ 4
Я не уверен, что это действительное решение, но удалив только файл, упомянутый в сообщении об ошибке. При удалении папки, содержащей ее, не было.
Ответ 5
Возможно, вы использовали файл JPEG или другой формат файла изображения.
Используйте PNG изображения для устранения ошибки.
В директории Drawable могут быть только png изображения.
Ответ 6
Это результат неправильного типа файла и может быть исправлен путем сохранения файлов в правильном формате.
Я столкнулся с этой проблемой с помощью PhoneGap Build и хотел оставить мои 2 цента для любого другого PhoneGap/ пользователя Cordova, который также может запускать в это.
Моя проблема заключалась в том, что я обновил свой старый PhoneGap 6.x до 8.0, и похоже, что поведение всплеска по умолчанию изменилось. Раньше он использовал jpg как всплеск по умолчанию, но на 8.0 это приводит к ошибке при создании сборки.
Это работало до:
<splash src="www/splash.jpg" />
Теперь у вас есть 2 варианта. Замените всплеск по умолчанию на png следующим образом:
<splash src="www/res/screen/android/screen-xhdpi-portrait.png" />
Другой вариант - полностью удалить всплеск по умолчанию.
Ответ 7
Для быстрого исправления Make shrinkResources до false вместо true в app.gradle
Надеюсь, это поможет.
если Not, то также добавьте это aaptOptions {cruncherEnabled = false}
Ответ 8
Если у вас нет прозрачных пикселей, переименование файла в .jpg
сработало для меня.
Ответ 9
у меня та же ошибка для медленного, я делаю какой-то шаг:
- открыть файл abc_btn_switch_to_on_mtrl_00001.9.png (изображение) в краске
- Теперь выберите png и сохраните как, а затем повторно сохраните в прорисовываемом и избыточном весе со старыми изображениями и его работой.
![enter image description here]()