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
我试图解决这个问题的一些基本内容:
问题可能是因为图像的错误扩展。
在我的情况下,该文件是一个JPEG
图像,但它保存为未转换为PNG
。在这种情况下,将更改扩展为真实的并转换为PNG然后重试。
对于instace,你有ic_logo.png
,但它实际上是一个JPG图像。
您应该将其重命名为ic_logo.jpg
并使用Photoshop之类的内容将图像转换为PNG格式。
build.gradle
aaptOptions {cruncherEnabled = false}C:\Users\.gradle\caches
中的内容我不确定它是否是有效的解决方案,但只删除错误消息中提到的文件有帮助。删除文件夹时,包含它的文件夹没有。
这确实是错误的文件类型的结果,可以通过以正确的格式保存文件来修复。
我在PhoneGap Build中遇到了这个问题,并希望为其他可能遇到此问题的PhoneGap / Cordova用户留下2美分。
我的问题是我将旧的PhoneGap 6.x升级到8.0,看起来默认启动的行为已经改变了。它过去需要jpg作为默认启动,但在8.0上它会导致生成版本出现此错误。
之前有效:
<splash src="www/splash.jpg" />
现在你有2个选择。用png替换默认的splash如下:
<splash src="www/res/screen/android/screen-xhdpi-portrait.png" />
其他选项是完全删除默认的splash。
要快速修复,请在app.gradle中将shrinkResources设置为false而不是true。希望这会有所帮助。如果不然后也添加这个aaptOptions {cruncherEnabled = false}
如果您没有任何透明像素,则将文件重命名为.jpg
对我有用。
您可能使用过JPEG文件或其他图像文件格式。
使用PNG图像来解决错误。
可绘制目录只能有png类型的图像。
我有同样的错误,我做了一些步骤: