V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
linus
V2EX  ›  Android

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

  •  
  •   linus · 2016-06-07 09:29:19 +08:00 · 6113 次点击
    这是一个创建于 2851 天前的主题,其中的信息可能已经有所发展或是发生改变。
    :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.
    19 条回复    2017-01-03 18:34:57 +08:00
    Bown
        1
    Bown  
       2016-06-07 09:35:24 +08:00
    点 9 图格式有问题,标准的点 9 图最外层得有一圈一像素的透明或白色边框
    willchen
        2
    willchen  
       2016-06-07 09:38:08 +08:00 via iPhone
    图片命名有问题?
    bkmi
        3
    bkmi  
       2016-06-07 09:40:05 +08:00
    程序猿还是稍微学点英文吧
    saberpowermo
        4
    saberpowermo  
       2016-06-07 10:01:57 +08:00
    Must have one-pixel frame that is either transparent or white 。。
    这不是说的很清楚么
    linus
        5
    linus  
    OP
       2016-06-07 10:05:13 +08:00
    @Bown
    资源文件是从别人的 app 里面提取的 直接改图片不现实 有很多张
    有其他方法吗?
    linus
        6
    linus  
    OP
       2016-06-07 10:05:41 +08:00
    @willchen
    资源文件是从别人的 app 里面提取的 我不可能改图片的
    linus
        7
    linus  
    OP
       2016-06-07 10:06:48 +08:00
    @bkmi
    我又不是看不懂英文 google 了好久 发现都是说的一楼的问题 想知道有没有其他方法
    linus
        8
    linus  
    OP
       2016-06-07 10:07:22 +08:00
    @saberpowermo
    资源文件是从别人的 app 里面提取的 直接改图片不现实 有很多张
    linus
        9
    linus  
    OP
       2016-06-07 10:13:07 +08:00
    在 stackoverflow 上看到 说用下面两个参数 可以关闭 PNG 合法性检查的 但是也没用
    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false
    MASAILA
        10
    MASAILA  
       2016-06-07 10:28:40 +08:00
    @linus .9 文件如果是直接解压出来的话是用不了的 要反编译
    ShanLin
        11
    ShanLin  
       2016-06-07 10:35:21 +08:00
    有个批量工具格式化 png 格式改下就行了
    mogrify
    reHuo
        12
    reHuo  
       2016-06-07 10:44:50 +08:00
    图片提取别的 app 也可以自己改 啊 用 android studio 双击.9 图片 打开 修改
    Bown
        13
    Bown  
       2016-06-07 11:34:30 +08:00
    @linus 只想编译通过的话,.9.png => .png 去掉.9 就好了
    pynix
        14
    pynix  
       2016-06-07 11:36:51 +08:00
    这么明显的错误啦..
    missingbobo
        15
    missingbobo  
       2016-06-07 11:38:01 +08:00
    我也遇到了,是 build tools 版本的问题, classpath 'com.android.tools.build:gradle:2.1.0'

    这个就没事
    wenmingvs
        16
    wenmingvs  
       2016-06-07 11:39:50 +08:00 via Android
    我之前也遇到这个问题。你肯定把 Eclipse 里面的.9 图拿来用了吧。 AS 会自动检查.9 图的合法性,你需要在 AS 中打开这张图片,按住 ctrl 健,用鼠标在图片边缘点击,设置他的拉伸位置就可以
    wenmingvs
        17
    wenmingvs  
       2016-06-07 11:41:01 +08:00 via Android
    如果图片是矩形或者正方形,要在他的四条边都设置拉伸的区域,记住
    CodeGou
        18
    CodeGou  
       2016-06-07 14:56:58 +08:00
    我感觉是文件夹放错了吧~ 应该放在 drawable 里面~
    yy1300326388
        19
    yy1300326388  
       2017-01-03 18:34:57 +08:00
    如果不会做.9 的就让美工去给你弄一下,她不会,你就百度一下吧,是图的问题,但是引用的时候 AS 默认会给你带上.9 一定要去掉:
    原图: aaa.9.png
    错误默认引用:@mipmap/aaa.9
    正确引用:@mipmap/aaa
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5534 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 08:59 · PVG 16:59 · LAX 01:59 · JFK 04:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.