libpng错误:不是PNG文件在Android Studio中显示错误

我刚刚从Eclipe to Android Studio导入了一个项目Eclipe to Android Studio 。 只是一个简单而简单的项目。 但项目文件夹显示一个错误。

请问我有什么方法可以实现我的目标? 我是新的Android工作室。有任何人遇到这个问题?任何帮助将不胜感激。

这里是Logcat

 Execution failed for task ':app:mergeDebugResources'. > Error: Failed to run command: /home/amiya/android-studio/sdk/build-tools/android-4.4.2/aapt s -i /home/amiya/vola/app/src/main/res/drawable-mdpi/call.png -o /home/amiya/vola/app/build/res/all/debug/drawable-mdpi/call.png Error Code: 42 Output: libpng error: Not a PNG file 

这是我的build.gradle

  apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion "19.0.3" defaultConfig { minSdkVersion 17 targetSdkVersion 19 } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } dependencies { compile 'com.android.support:appcompat-v7:+' compile 'com.android.support:support-v4:+' compile 'com.google.android.gms:play-services:+' compile files('libs/google-play-services.jar') compile files('libs/livesdk.jar') } 

我没有用这个名字在我的项目中的任何地方使用这个文件! 我的项目中还有很多其他的png文件。

采取以下解决我的问题的步骤:

  1. 剪切粘贴在我的桌面上的图像

  2. 在编辑器中打开它保存为PNG。 而无需重命名文件名称

  3. 将.png图像复制粘贴到可绘制文件夹中

你可以使用cruncherEnabled

如果应该压缩PNG,则返回true,否则返回false。

 android { aaptOptions { cruncherEnabled = false } } 

它帮助了我。试试这个方法,我想它会起作用。

尝试在build.gradle

 android { .... aaptOptions { cruncherEnabled = false } .... } 

这可能是因为图像的重命名问题只是剪切图像,粘贴在系统中的任何地方,用相应的编辑器打开,并保存为PNG格式,然后复制并粘贴到可绘制的文件夹。 这个对我有用

并且请看看我提交给ANDROID STUDIO团队的问题

希望它能帮助你。

尝试运行命令

 find . -type f -name "*.png" | xargs -L 1 -I{} file -I {} | grep -v 'image/png; charset=binary$' 

在你的根目录下,它会显示所有.png扩展名的文件,但不是png。 然后你可以在一些图像编辑器中将它们保存为png。 在运行这个命令clean项目之前,要加快这个过程。

如果您使用的是Mac OS,请按照以下步骤获取png

  1. 在预览中打开图像
  2. 转到文件 – >导出
  3. 设置格式为PNG
  4. 点击保存

这会给你一个有效的PNG

只是重命名或更改扩展名将无法在Mac OS中工作。

错误中的“PNG”显然是用大写字母写的。 所以你需要看到图像有.PNG扩展(在资本)。

第1步:在Paint中打开图像。

步骤2:保存图像另存为.PNG如下所示点击此处查看如何将图像保存为PNG

第3步:刷新您的项目

第4步:你应该看到这样 – > 看到这里

如果问题仍未解决,请回复

尝试使用另一个PNG文件。 png的元数据看起来有些问题。 我遇到过同样的问题。 然后我使用了一些其他的PNG文件,它解决了我的问题。