无法读取PNG签名:文件不以PNG签名开头

pra*_*sun 21 android gradle android-gradle-plugin

Gradle构建失败,出现此错误:

错误: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无法读取PNG签名:文件不以PNG签名开头

错误:java.lang.RuntimeException:java.lang.RuntimeException:com.android.builder.internal.aapt.AaptException:AAPT2编译失败:错误:任务':app:mergeDebugResources'的执行失败.错误:java.lang.RuntimeException:java.lang.RuntimeException:com.android.builder.internal.aapt.AaptException:AAPT2编译失败:aapt2编译--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问题: - 错误: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无法读取PNG签名:文件不以PNG签名开头

我试图解决这个问题的一些基本内容:

  1. 无效缓存/重启
  2. 删除gradle文件夹

Mah*_*alv 34

问题可能是因为JPEG图像.
在我的情况下,文件是一个PNG图像,但它保存为 ic_logo.png未转换为.在这种情况下,将更改扩展为真实的并转换为PNG然后重试.

  • 这也是我们的根本原因 - 图形设计师意外地保存了带有.PNG扩展名的JPEG. (4认同)

Kes*_*era 15

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'
        }
    }
Run Code Online (Sandbox Code Playgroud)


Kum*_*anu 13

无法读取 PNG 签名 - 只需在 build.gradle 中放入 1 行

 buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        crunchPngs false  // Paste this line
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)


Die*_*cio 5

脚步

  1. build.gradle

    aaptOptions {cruncherEnabled = false }

  2. 删除里面的内容 C:\Users\.gradle\caches

  3. 重新启动Android Studio

  • 只需按照**步骤 1** 操作即可解决问题,感谢@DiegoVenâncio,为拯救我的一天而投票。 (3认同)

Jor*_*sys 5

创建应用程序的 .apk 时会分析所有资源,如果某些资源格式不正确或已损坏,您将收到消息:

.png 无法读取 PNG 签名:文件不以 PNG 签名开头

在此输入图像描述

确保拥有正确的资源,您可以通过打开文件来检查。


pra*_*sun 0

我不确定这是否是有效的解决方案,但仅删除错误消息中提到的文件会有所帮助。删除文件夹时,包含它却没有。