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

Int*_*iya 46 android android-studio build.gradle

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

我可以知道实现目标的正确方法是什么?我是Android-studio的新手.有没有人遇到过这个问题?非常感谢任何帮助.

这是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
Run Code Online (Sandbox Code Playgroud)

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

我没有在我的项目中的任何地方使用该文件!我的项目中还有许多其他png文件.

Int*_*iya 63

您应该按照以下步骤操作.

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

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

  3. .png图像复制粘贴到drawable文件夹中.

你可以用cruncherEnabled.

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

android 
{ 
   aaptOptions
   {
   cruncherEnabled = false
   } 
}
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助.

  • 在我的情况下,我没有得到哪个PNG文件有这个问题.所以我无法应用您的解决方案! (3认同)

小智 30

在build.gradle中尝试这个

android {
    ....
    aaptOptions {
        cruncherEnabled = false
    }
    ....
}
Run Code Online (Sandbox Code Playgroud)


小智 25

尝试运行命令

find . -type f -name "*.png" | xargs -L 1 -I{} file  -I {} | grep -v 'image/png; charset=binary$'
Run Code Online (Sandbox Code Playgroud)

在根项目目录中,它将显示所有扩展名为.png但不是png的文件.然后你可以在一些图像编辑器中将它们重新保存为png.在运行此命令之前清理项目,以加快进程.


Spr*_*ies 20

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

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

希望它能帮到你们所有人.