andriod ./gradlew build 提示.9 图片报错

2016-06-07 09:29:19 +08:00
 linus
:preBuild
:compileDebugNdk UP-TO-DATE
:preDebugBuild
:checkDebugManifest
:prepareDebugDependencies
:compileDebugAidl UP-TO-DATE
:compileDebugRenderscript UP-TO-DATE
:generateDebugBuildConfig UP-TO-DATE
:generateDebugAssets UP-TO-DATE
:mergeDebugAssets UP-TO-DATE
:generateDebugResValues UP-TO-DATE
:generateDebugResources UP-TO-DATE
:mergeDebugResources
ERROR: 9-patch image /root/workspace/ReinforceApk/res/drawable-hdpi/bg_tab_bottom_r_f1_1.9.png malformed.
Must have one-pixel frame that is either transparent or white.
Error: Failed to run command:
/root/revo/tools/SDK/build-tools/23.0.3/aapt s -i /root/workspace/ReinforceApk/res/drawable-hdpi/bg_tab_bottom_r_f1_1.9.png -o /root/workspace/ReinforceApk/build/intermediates/res/debug/drawable-hdpi-v4/bg_tab_bottom_r_f1_1.9.png
Error Code:
42
Output:
ERROR: 9-patch image /root/workspace/ReinforceApk/res/drawable-hdpi/bg_tab_bottom_r_f1_1.9.png malformed.
Must have one-pixel frame that is either transparent or white.

:mergeDebugResources FAILED
ERROR: 9-patch image /root/workspace/ReinforceApk/res/drawable/rb_sub_jian.9.png malformed.
Must have one-pixel frame that is either transparent or white.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':mergeDebugResources'.
> Error: Failed to run command:
/root/revo/tools/SDK/build-tools/23.0.3/aapt s -i /root/workspace/ReinforceApk/res/drawable-hdpi/bg_tab_bottom_r_f1_1.9.png -o /root/workspace/ReinforceApk/build/intermediates/res/debug/drawable-hdpi-v4/bg_tab_bottom_r_f1_1.9.png
Error Code:
42
Output:
ERROR: 9-patch image /root/workspace/ReinforceApk/res/drawable-hdpi/bg_tab_bottom_r_f1_1.9.png malformed.
Must have one-pixel frame that is either transparent or white.
10722 次点击
所在节点    Android
19 条回复
Bown
2016-06-07 09:35:24 +08:00
点 9 图格式有问题,标准的点 9 图最外层得有一圈一像素的透明或白色边框
willchen
2016-06-07 09:38:08 +08:00
图片命名有问题?
bkmi
2016-06-07 09:40:05 +08:00
程序猿还是稍微学点英文吧
saberpowermo
2016-06-07 10:01:57 +08:00
Must have one-pixel frame that is either transparent or white 。。
这不是说的很清楚么
linus
2016-06-07 10:05:13 +08:00
@Bown
资源文件是从别人的 app 里面提取的 直接改图片不现实 有很多张
有其他方法吗?
linus
2016-06-07 10:05:41 +08:00
@willchen
资源文件是从别人的 app 里面提取的 我不可能改图片的
linus
2016-06-07 10:06:48 +08:00
@bkmi
我又不是看不懂英文 google 了好久 发现都是说的一楼的问题 想知道有没有其他方法
linus
2016-06-07 10:07:22 +08:00
@saberpowermo
资源文件是从别人的 app 里面提取的 直接改图片不现实 有很多张
linus
2016-06-07 10:13:07 +08:00
在 stackoverflow 上看到 说用下面两个参数 可以关闭 PNG 合法性检查的 但是也没用
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
MASAILA
2016-06-07 10:28:40 +08:00
@linus .9 文件如果是直接解压出来的话是用不了的 要反编译
ShanLin
2016-06-07 10:35:21 +08:00
有个批量工具格式化 png 格式改下就行了
mogrify
reHuo
2016-06-07 10:44:50 +08:00
图片提取别的 app 也可以自己改 啊 用 android studio 双击.9 图片 打开 修改
Bown
2016-06-07 11:34:30 +08:00
@linus 只想编译通过的话,.9.png => .png 去掉.9 就好了
pynix
2016-06-07 11:36:51 +08:00
这么明显的错误啦..
missingbobo
2016-06-07 11:38:01 +08:00
我也遇到了,是 build tools 版本的问题, classpath 'com.android.tools.build:gradle:2.1.0'

这个就没事
wenmingvs
2016-06-07 11:39:50 +08:00
我之前也遇到这个问题。你肯定把 Eclipse 里面的.9 图拿来用了吧。 AS 会自动检查.9 图的合法性,你需要在 AS 中打开这张图片,按住 ctrl 健,用鼠标在图片边缘点击,设置他的拉伸位置就可以
wenmingvs
2016-06-07 11:41:01 +08:00
如果图片是矩形或者正方形,要在他的四条边都设置拉伸的区域,记住
CodeGou
2016-06-07 14:56:58 +08:00
我感觉是文件夹放错了吧~ 应该放在 drawable 里面~
yy1300326388
2017-01-03 18:34:57 +08:00
如果不会做.9 的就让美工去给你弄一下,她不会,你就百度一下吧,是图的问题,但是引用的时候 AS 默认会给你带上.9 一定要去掉:
原图: aaa.9.png
错误默认引用:@mipmap/aaa.9
正确引用:@mipmap/aaa

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/284013

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX