build - apktool 构建 apk 失败

我在应用程序 apktool 问题上遇到了非常烦人的问题。 我不明白我做错了什么,或者问题是什么。 我在 debian 和 linux mint 上试过这个。我用了不同版本的apktool,

导致同样的错误:

I: Checking whether sources has changed...
I: Checking whether resources has changed...
I: Building resources...
Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, -F, /tmp/APKTOOL3630495287059303807.tmp, -I, /home/awesomename/apktool/framework/1.apk, -S, /home/awesomename/out/./res, -M, /home/awesomename/out/./AndroidManifest.xml]
    at brut.androlib.res.AndrolibResources.aaptPackage(Unknown Source)
    at brut.androlib.Androlib.buildResourcesFull(Unknown Source)
    at brut.androlib.Androlib.buildResources(Unknown Source)
    at brut.androlib.Androlib.build(Unknown Source)
    at brut.androlib.Androlib.build(Unknown Source)
    at brut.apktool.Main.cmdBuild(Unknown Source)
    at brut.apktool.Main.main(Unknown Source)
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, /tmp/APKTOOL3630495287059303807.tmp, -I, /home/windows/apktool/framework/1.apk, -S, /home/windows/out/./res, -M, /home/windows/out/./AndroidManifest.xml]
    at brut.util.OS.exec(Unknown Source)
    ... 7 more
Caused by: java.io.IOException: Cannot run program "aapt": error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
    at java.lang.Runtime.exec(Runtime.java:617)
    at java.lang.Runtime.exec(Runtime.java:485)
    ... 8 more
Caused by: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)
    at java.lang.ProcessImpl.start(ProcessImpl.java:130)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)
    ... 10 more

它似乎不能使用 aapt ,但我阅读了有关 apktool 的信息。 而且似乎 aapt 是在 apktool 内部构建的,为什么它不起作用?

最佳答案

在重新编译 apk 时构建资源似乎存在一些问题。 你可以做的是,当你反编译你的 apk 时使用这个命令

apktool d -f -r apkfilename.apk

这里-f是替换之前反编译的apk的代码,-r是忽略资源的反编译。

这将防止资源被反编译,并且在您重新编译 apk 时只会复制相同的资源。

https://stackoverflow.com/questions/23317208/

相关文章:

.net - 有没有办法在 NAnt 中动态加载属性文件?

optimization - Jekyll 编译似乎太慢了

.net - 构建后的 MsBuild 复制文件

recursion - 如何在 NuSpec 文件中递归地包含目录

ios - 在命令行中清理 IOS xcode 目标

android - targetSdkVersion 和项目构建目标之间的区别

gradle - 为什么我收到 "could not find com.android.tools.

c - "make clean"结果 "No rule to make target ` 干净 '"

visual-studio - TFS 构建损坏 - 源目录上的目录不为空

c++ - 在构建我的 C++ 可执行文件 (gcc) 时,我可以获得所有链接库的报告吗? (包括静