如何从' apktool d -s -o'中构建apk?夹

时间:2018-06-19 04:27:43

标签: build package apk apktool

我首先运行apktool d -s -o foldername解码apk文件。所以classes.dex保留在文件夹中。然后我替换classes.dex文件并想要打包一个新的apk文件。所以我运行apktool b foldername在终端上。但是出现了错误:

I: Using Apktool 2.0.3
I: Checking whether resources has changed...
I: Building resources...
res/drawable/$ic_launcher_foreground__0.xml: Invalid file name: must contain only [a-zA-Z0-9_.]
A/        ( 6108): First type is not attr!
Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [/var/folders/1x/rbs7f_y145qf3f9dbbzktwlw0000gn/T/brut_util_Jar_7766331736141549579.tmp, p, --forced-package-id, 127, --min-sdk-version, 27, --target-sdk-version, 27, --version-code, 1, --version-name, 1.0, -F, /var/folders/1x/rbs7f_y145qf3f9dbbzktwlw0000gn/T/APKTOOL1668967197700881167.tmp, -0, arsc, -0, version, -0, arsc, -I, /Users/eilir/Library/apktool/framework/1.apk, -S, /Users/eilir/work6/安卓/new3/res, -M, /Users/eilir/work6/安卓/new3/AndroidManifest.xml]
    at brut.androlib.Androlib.buildResourcesFull(Androlib.java:472)
    at brut.androlib.Androlib.buildResources(Androlib.java:410)
    at brut.androlib.Androlib.build(Androlib.java:298)
    at brut.androlib.Androlib.build(Androlib.java:268)
    at brut.apktool.Main.cmdBuild(Main.java:225)
    at brut.apktool.Main.main(Main.java:84)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [/var/folders/1x/rbs7f_y145qf3f9dbbzktwlw0000gn/T/brut_util_Jar_7766331736141549579.tmp, p, --forced-package-id, 127, --min-sdk-version, 27, --target-sdk-version, 27, --version-code, 1, --version-name, 1.0, -F, /var/folders/1x/rbs7f_y145qf3f9dbbzktwlw0000gn/T/APKTOOL1668967197700881167.tmp, -0, arsc, -0, version, -0, arsc, -I, /Users/eilir/Library/apktool/framework/1.apk, -S, /Users/eilir/work6/安卓/new3/res, -M, /Users/eilir/work6/安卓/new3/AndroidManifest.xml]
    at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:425)
    at brut.androlib.Androlib.buildResourcesFull(Androlib.java:458)
    ... 5 more
Caused by: brut.common.BrutException: could not exec command: [/var/folders/1x/rbs7f_y145qf3f9dbbzktwlw0000gn/T/brut_util_Jar_7766331736141549579.tmp, p, --forced-package-id, 127, --min-sdk-version, 27, --target-sdk-version, 27, --version-code, 1, --version-name, 1.0, -F, /var/folders/1x/rbs7f_y145qf3f9dbbzktwlw0000gn/T/APKTOOL1668967197700881167.tmp, -0, arsc, -0, version, -0, arsc, -I, /Users/eilir/Library/apktool/framework/1.apk, -S, /Users/eilir/work6/安卓/new3/res, -M, /Users/eilir/work6/安卓/new3/AndroidManifest.xml]
    at brut.util.OS.exec(OS.java:89)
    at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:419)
    ... 6 more

我认为这是因为classes.dex文件保留在文件夹中。我该怎么办?

1 个答案:

答案 0 :(得分:0)

我只想替换apk中的classes.dex文件。如果在Windows中使用RAR软件很容易,但在MacOS上没办法。