【问题标题】:libpng error: Not a PNG file Error Showing In Android Studiolibpng 错误:Android Studio 中显示的不是 PNG 文件错误
【发布时间】:2014-06-15 11:35:40
【问题描述】:

我刚刚从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

这是我的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 图像..
  • 同样的问题,同样的评论:检查提到的文件 call.png 是否存在以及它是否是一个有效的 PNG 文件。例如。用十六进制编辑器打开它并验证它的第一个字节中是否有“PNG”。
  • 还在前 16 个字节内查找 IHDR。文件可能包含“CgBI”,而“IHDR”应该是。
  • 我有同样的错误,但它没有显示任何损坏的文件名。

标签: android android-studio build.gradle


【解决方案1】:

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

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

  2. 在编辑器中打开它并保存为 png。不重命名文件 姓名

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

您可以使用cruncherEnabled

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

android 
{ 
   aaptOptions
   {
   cruncherEnabled = false
   } 
}

希望对你有所帮助。

【讨论】:

  • 在我的情况下,我没有得到哪个 PNG 文件有这个问题。所以我无法应用你的解决方案!
  • @BharatDodeja 好的。你的 logcat 返回什么?
  • AAPT:libpng 错误:不是 PNG 文件 AAPT:libpng 错误:不是 PNG 文件:aIDEConsumerOff:mergeDebugResources FAILED FAILURE:构建失败并出现异常。 * 出了什么问题:任务 ':aIDEConsumerOff:mergeDebugResources' 执行失败。 > 某些文件处理失败,请参阅日志了解详细信息 * 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。构建失败
  • 最后,通过比较 res 文件夹和我的工作项目备份副本的 res,我发现哪些 drawable 不是实际的 PNG。他们的文件大小不同。 :)
  • 我在android/build.gradle 中设置了这个,我可以跳过前三个步骤。谢谢!
【解决方案2】:

在 build.gradle 中试试这个

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

【讨论】:

  • useNewCruncher = false
  • useNewCrunchercruncherEnabled有什么区别?
【解决方案3】:

尝试运行命令

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

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

【讨论】:

  • 为我打印“file: invalid option -- 'I'”。
【解决方案4】:

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

AND PLEASE LOOK AT THE ISSUE WHICH I SUBMITTED TO THE ANDROID STUDIO TEAM

希望对大家有所帮助。

【讨论】:

  • @MSI 只是通过在图像编辑器中打开图像来检查您的图像格式,比如在 Windows 和 linux 图像查看器中绘制并保存检查它们的格式而不是查看它们的扩展名吗?
  • @MSI 我已经编辑了我的答案请查看问题链接它将解决您的问题,如果有帮助别忘了给我投票谢谢
  • 感谢 Spry。只需使用 Windows 编辑功能将其重新保存为 png。并且有效:)
【解决方案5】:

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

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

这会给你一个有效的 png

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

【讨论】:

    【解决方案6】:

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

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

    第二步:保存图片另存为.PNG,如下图 Click here to see how to save the image in PNG

    第 3 步:刷新您的项目

    第 4 步:你应该会看到这样 -> See here

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

    【讨论】:

      【解决方案7】:

      对我来说,发生的事情是我在 Windows 上克隆了存储库,这些 PNG 文件在 Linux/Mac 中是符号链接,但在 Windows 上它们只是无效文件。一旦我对文件进行了正确的复制而不是符号链接,构建就可以工作了。

      【讨论】:

        【解决方案8】:

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

        【讨论】:

          猜你喜欢
          • 2014-11-15
          • 2016-03-17
          • 2016-02-24
          • 2014-03-30
          • 2012-05-13
          • 2016-08-15
          • 2016-08-28
          • 1970-01-01
          相关资源
          最近更新 更多