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

libpng错误:在Android Studio中显示的不是PNG文件错误,android,android-studio,build.gradle,Android,Android Studio,Build.gradle,我刚刚从Eclipe导入了一个项目到androidstudio。只是一个简单明了的项目。但是项目文件夹显示一个错误 我可以知道实现我的目标的正确方法是什么吗?我是新来安卓工作室的。有人遇到过这个问题吗?如果有人能帮我,我将不胜感激 以下是Logcat: Execution failed for task ':app:mergeDebugResources'. > Error: Failed to run command: /home/amiya/android-studio/sdk

我刚刚从
Eclipe导入了一个项目到androidstudio
。只是一个简单明了的项目。但是项目文件夹显示一个错误

我可以知道实现我的目标的正确方法是什么吗?我是新来安卓工作室的。有人遇到过这个问题吗?如果有人能帮我,我将不胜感激

以下是
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文件。

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


希望它能帮助你们所有人。

你们应该遵循以下步骤

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

  • 在编辑器中将其打开并保存为png。不重命名文件 名称

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

  • 您可以使用cruncherEnabled

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


    希望这对您有所帮助。

    尝试使用另一个png文件。png的元数据似乎有问题。我也有同样的问题。然后我使用了其他一些png文件,它解决了我的问题。

    尝试运行命令

    find . -type f -name "*.png" | xargs -L 1 -I{} file  -I {} | grep -v 'image/png; charset=binary$'
    
    在根项目目录中,它将向您显示扩展名为.png但不是png的所有文件。 然后可以在某些图像编辑器中将它们重新保存为png。
    运行此命令之前,请先清除项目,以加快进程。

    在build.gradle中尝试此操作

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

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

  • 在预览中打开图像
  • 转到文件->导出
  • 将格式设置为png
  • 点击保存
  • 这将为您提供一个有效的png

    仅重命名或更改扩展名在Mac OS中不起作用。

    错误中的“PNG”显然是用大写字母写的。因此,您需要看到图像具有.PNG扩展名(大写)

    步骤1:在绘制中打开图像

    步骤2:保存图像另存为.PNG如下所示

    步骤3:刷新项目

    步骤4:您应该看到这样的->


    如果问题仍然没有解决,请回复。对我来说,发生的事情是我在Windows上克隆了存储库,这些PNG文件在Linux/Mac中是符号链接,但在Windows上它们只是无效文件。一旦我正确复制了文件而不是符号链接,构建工作就开始了。

    检查可绘制文件夹中的png图像。同样的问题,同样的注释:检查所提到的文件call.png是否存在,以及它是否是有效的png文件。例如,用十六进制编辑器打开它,并验证它的前16个字节中是否有“PNG”。还可以在前16个字节中查找IHDR。文件可能包含“CgBI”,其中“IHDR”应该是。我有相同的错误,但它没有显示任何已损坏的文件名。@MSI只需将图像打开到图像编辑器中检查图像的格式,如在windows和linux图像查看器中绘制并保存检查其格式,而不是查看其扩展名,对吗?@MSI我已编辑我的答案请查看问题链接它会解决你的问题,如果有帮助的话,别忘了给我投票。只需使用windows编辑功能将其重新保存为png。在我的例子中,我不知道哪个PNG文件有这个问题。所以我无法应用你的解决方案@BharatDodeja好的。您的logcat返回什么?AAPT:libpng错误:不是PNG文件AAPT:libpng错误:不是PNG文件:aIDEConsumerOff:mergeDebugResources失败:生成失败,出现异常。*错误:任务的执行失败:AIDESumerOff:mergeDebugResources'>某些文件处理失败,请参阅日志了解详细信息*Try:Run with--stacktrace选项以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。构建失败最后,通过比较res文件夹和工作项目备份副本的res,我发现哪些可绘制文件不是实际的PNG。他们的文件大小不同。:)我在android/build.gradle中设置了这个,我可以跳过前3步。谢谢为我打印“文件:无效选项--‘I’”。useNewCruncher=false
    useNewCruncher
    cruncherEnabled
    之间有什么区别?
    android {
        ....
        aaptOptions {
            cruncherEnabled = false
        }
        ....
    }