apktool回编译错的解决方法【转】

今天在修改cm9电池图标的时候,碰到一个问题,在用apktool对apk回编译的时候,出现类似以下错误(错误代码借用的网上的)。             
                                

  • C:\Users\Connor\Desktop\New folder>apktool b Browser -d
  • I: Checking whether sources has changed...
  • I: Checking whether resources has changed...
  • I: Building resources...
  • invalid resource directory name: C:\Users\Connor\Desktop\New folder\Browser\res/drawable-sw600dp-hdpi
  • invalid resource directory name: C:\Users\Connor\Desktop\New folder\Browser\res/drawable-sw600dp-nodpi
  • invalid resource directory name: C:\Users\Connor\Desktop\New folder\Browser\res/layout-sw600dp
  • invalid resource directory name: C:\Users\Connor\Desktop\New folder\Browser\res/menu-sw600dp
  • invalid resource directory name: C:\Users\Connor\Desktop\New folder\Browser\res/mipmap-hdpi
  • invalid resource directory name: C:\Users\Connor\Desktop\New folder\Browser\res/mipmap-mdpi
  • invalid resource directory name: C:\Users\Connor\Desktop\New folder\Browser\res/mipmap-xhdpi
  • invalid resource directory name: C:\Users\Connor\Desktop\New folder\Browser\res/values-sw600dp
  • invalid resource directory name: C:\Users\Connor\Desktop\New folder\Browser\res/values-sw600dp-port
  • invalid resource directory name: C:\Users\Connor\Desktop\New folder\Browser\res/values-w720dp
  • invalid resource directory name: C:\Users\Connor\Desktop\New folder\Browser\res/xml-sw600dp
  • Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\Users\Connor\AppData\Local\Temp\APKTOOL6693420034194559908.tmp, -I, C:\U
  • sers\Connor\apktool\framework\1.apk, -I, C:\Users\Connor\apktool\framework\3.apk, -S, C:\Users\Connor\Desktop\New folder\Browser\res, -M, C:\Users\Connor\Desktop\New folder\Browser\AndroidManifest.xml
  • ]
  •         at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:193)
  •         at brut.androlib.Androlib.buildResourcesFull(Androlib.java:301)
  •         at brut.androlib.Androlib.buildResources(Androlib.java:248)
  •         at brut.androlib.Androlib.build(Androlib.java:171)
  •         at brut.androlib.Androlib.build(Androlib.java:154)
  •         at brut.apktool.Main.cmdBuild(Main.java:182)
  •         at brut.apktool.Main.main(Main.java:67)
  • Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\Users\Connor\AppData\Local\Temp\APKTOOL6693420034194559908.tmp, -I, C:\Users\Connor\apktool\framework\1.apk, -I, C:\Users
  • \Connor\apktool\framework\3.apk, -S, C:\Users\Connor\Desktop\New folder\Browser\res, -M, C:\Users\Connor\Desktop\New folder\Browser\AndroidManifest.xml]
  •         at brut.util.OS.exec(OS.java:83)
  •         at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:191)
  •         ... 6 more


    从错误中来看,好像是针对平板的sw600dp-hdpi文件夹无效。以为是修改文件导致,但后来发现,即便是反编译后不做任何修改,直接回编译,同样会出现这种错误。

    多方度娘之后,得到的方法均无效,比如:有说framework-res.apk需要的别人未修改的,经测试,无效。有说apktool版本太低,我下的最新版,同样无效。有说baksmali版本不对,更有甚者说现在apktool还不支持android 4.0…………等等……

    头大了半天之后,继续寻找解决办法,皇天不负有心人,终于在一篇E文中找到了相关的情况,原因是aapt版本太低。(文中还提到,替换成新的aapt之后要对apk重新反编译后再回编辑,直接回编辑之前的可能会有问题。)

    多方寻找aapt未果之后,只好下载安装android SDK,从中提取出aatp替换掉 apktool文件夹中自带的aapt,之后重新编译……成功。

    SDK中的aapt只有800K,而apktool自带的则有5M之多,刚看到的时候感到很疑惑,但确实管用,也就不管那么了…………

    简单说一下配置环境,java  jdk 7.1  、apktool 1.4.3

    最后把新的aapt发上了,方便遇到同样问题的童鞋。

 

原文地址:http://bbs.gfan.com/android-4097769-1-1.html

转载于:https://www.cnblogs.com/Blessing/archive/2013/06/12/3132536.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值