使用apktool_2.6.1重编译未修改APK时遇资源目录错误求助
使用apktool_2.6.1编译一款未做任何修改的APK,执行命令apktool b app.apk时出现以下错误:
invalid resource directory name: C:\Users\test\Documents\APK Easy Tool\1-Decompiled APKs\com.app.app2\res navigation
brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\test\AppData\Local\Temp\brut_util_Jar_121707779579717501731948984067731632634.tmp, p, --forced-package-id, 127, --version-code, 4591, --version-name, 4.59.1, --no-version-vectors, -F, C:\Users\test\AppData\Local\Temp\APKTOOL3747578255524950029.tmp, -e, C:\Users\test\AppData\Local\Temp\APKTOOL7131208164915828680.tmp, -0, arsc, -I, C:\Users\test\AppData\Local\apktool\framework\1.apk, -S, C:\Users\test\Documents\APK Easy Tool\1-Decompiled APKs\com.app.app2\res, -M, C:\Users\Everspin\Documents\APK Easy Tool\1-Decompiled APKs\com.app.app2\AndroidManifest.xml]
问题原因
错误核心是路径包含空格导致资源目录解析异常:原路径里的APK Easy Tool和1-Decompiled APKs带空格,导致Apktool误将res navigation识别成非法目录名(实际应为res\navigation子目录)。
修复步骤
- 将反编译后的APK文件夹移动到无空格、无特殊字符的路径下,比如
C:\APK_Projects\com.app.app2 - 切换到新目录的父级,重新执行编译命令:
apktool b com.app.app2
额外提示
Apktool对带空格的文件路径兼容性较差,建议所有反编译、编译操作都在纯英文无空格的目录下进行,避免类似解析错误。
内容的提问来源于stack exchange,提问作者Admin Everspin

