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文件。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
如果问题仍然没有解决,请回复。对我来说,发生的事情是我在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
}
....
}