当前位置:   article > 正文

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

invalid resource directory name .brutexception: could not exec

今天在修改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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/314130
推荐阅读
相关标签
  

闽ICP备14008679号