Не удалось прочитать подпись 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

Некоторые основные вещи, которые я пытался решить эту проблему:

  1. Недействительные кэши/перезапуск
  2. Удаление папки Gradle

Ответ 1

Возможно, проблема связана с неправильным расширением изображений.

В моем случае файл представлял собой изображение JPEG, но он был сохранен как PNG, не преобразованный в. В этой ситуации измените расширение на реальное и преобразуйте его в PNG, затем повторите попытку.

Для примера у вас есть ic_logo.png, но на самом деле это JPG изображение.
Вы должны переименовать его обратно в ic_logo.jpg и использовать что-то вроде Photoshop для преобразования изображения в формат PNG.

Ответ 2

Действия

  • В build.gradle

    aaptOptions {   cruncherEnabled = false }

  • Удалить содержимое внутри C:\Users\.gradle\caches

  • Перезапустить Android Studio

Ответ 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

у меня та же ошибка для медленного, я делаю какой-то шаг:

  1. открыть файл abc_btn_switch_to_on_mtrl_00001.9.png (изображение) в краске
  2. Теперь выберите png и сохраните как, а затем повторно сохраните в прорисовываемом и избыточном весе со старыми изображениями и его работой.

enter image description here