当我运行 Apktool 来为 android 构建包时,我得到了以下输出:
:~$ apktool build '/home/...' I:检查源是否已更改... I:检查资源是否已更改... I:构建资源... 线程“main”中出现异常 brut.androlib.AndrolibException: brut.common.BrutException:
无法执行命令:aapt,p,-F,/tmp/APKTOOL3418222472327622786.tmp,-I,
/home/apktool/framework/1.apk,-S,/home/.../ /home/.../AndroidManifest.xml] at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:255) at brut.androlib.Androlib.buildResourcesFull(Androlib.java:324) at brut.androlib.Androlib.buildResources(Androlib.java:269) at brut.androlib.Androlib.build(Androlib.java:192) at brut.androlib.Androlib.build(Androlib.java:174) at brut.apktool.Main.cmdBuild(Main.java:188) at brut.apktool.Main.main(Main.java:70) 原因:brut.common.BrutException:无法执行命令:[aapt,p,-F,/tmp/APKTOOL3418222472327622786.tmp,-I,/home/.../.../framework/1.apk,-S,/home/.../.../res,-M,/home/.../.../AndroidManifest.xml] at brut.util.OS.exec(OS.java:87) at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:253) ... 另外 6 个原因:java.io.IOException:无法运行程序“aapt”:java.io.IOException:错误 = 2,没有该文件或目录 在 java.lang.ProcessBuilder.start(ProcessBuilder.java:475) 在 java.lang.Runtime.exec(Runtime.java:610) 在 java.lang.Runtime.exec(Runtime.java:483) 在 brut.util.OS.exec(OS.java:78) ... 另外 7 个原因:java.io.IOException:java.io.IOException:错误 = 2,没有该文件或目录 在 java.lang.UNIXProcess.(UNIXProcess.java:164) 在 java.lang.ProcessImpl.start(ProcessImpl.java:81) java.lang.ProcessBuilder.start(ProcessBuilder.java:468)...另外 10 个
这看起来像是一个 PATH 问题,因为它无法访问 aapt,但是我的 PATH 位于 ~/pam_enviorment 并且如下:
PATH DEFAULT=${PATH}:~/myTerminal
PATH DEFAULT=${PATH}:~/myTerminal/aapt
欢迎任何建设性的反馈。
答案1
--aapt
从 apktool v1.5.1 开始,我添加了通过/将路径传递给 apktool 的支持-a
,因此在重建时只需使用apktool b --aapt /path/to/aapt nameofapkfolder
。因此,请更新您的 apktool,而不必再摆弄路径变量。
至于路径问题。会发生什么echo $PATH
?
答案2
这肯定像是我之前遇到的 aapt PATH 问题。我相信你现在已经把这一切都解决了,但对于其他可能遇到同样问题的 Linux 用户,我在 bash 中制作了一个好的 apk 工具包,以避免所有这些依赖问题,称为apk munky-rench。 一探究竟。
在初始版本中,apk munky-rench 具有以下特点:
- 解压APK
- 压缩 APK
- 安装框架
- 反编译Apk
- 编译Apk
- 签署 Apk
- Zipalign Apk
- 编译系统Apk
- ADB 安装
- ADB 推/拉
- Fastboot 闪存恢复
- 海姆达尔闪存恢复
- 通过板载 Heimdall 支持三星设备
- Flashable Zip 生成器
- 棒棒糖兼容性
- 特征简述