a13389809 发表于 2023-11-29 13:07

Android Killer修复关于aapt2的问题

前言:(着急的可以先不看)AndroidKillder使用了好久了,不管jeb或者别的tools有多优秀,习惯确实很重要,不知道有多少人和我一样喜欢killer的ui;或者说已经习惯了用killer,同时也遇到很多问题。虽然killer不维护了,但是还是想用它。之前遇到很多问题,都在凑合解决,今天终于有点空了,来了论坛找各种问题的答案,特别是关于aapt2的问题,一直没有得以解决,今天来说一下killer遇到的两个问题。这也是从我使用killer这3年以来遇到的大部分问题。

# 问题1:回编译之后apk安装失败
这种问题一般都是由于签名的问题,因为android killer使用的是v1签名;

之前的解决方案:打包之后,导入模拟器,使用MT进行签名再安装。

新的一键式解决方案:替换掉根目录的签名文件和签名工具的jar


这里我就不赘述了,参考链接:(https://www.52pojie.cn/forum.php?mod=viewthread&tid=1707037&highlight=android%2Bkiller)

### 问题1.1 使用的时候遇到情况:系统找不到指定文件
>最后签名完了提示我找不到指定文件
正在对 APK 进行签名,请稍等...
>"E:\Android\yjy\AndroidKiller_v1.3.1\projects\项目名称(2)\Bin\project.apk"
>"E:\Android\yjy\AndroidKiller_v1.3.1\projects\项目名称(2)\Bin\project.apk.sign"
>source:
>      E:\Android\yjy\AndroidKiller_v1.3.1\projects\项目名称(2)\Bin
>zipalign location: BUILT_IN
>      C:\Users\M1861\AppData\Local\Temp\uapksigner-2935952246011960141\win-zipalign_29_0_2.exe1463979808780431891.tmp
>keystore:
>       476a92f9 E:\Android\yjy\AndroidKiller_v1.3.1\bin\apktool\bjx.jks (RELEASE_CUSTOM)
>01. project.apk
>      SIGN
>      file: E:\Android\yjy\AndroidKiller_v1.3.1\projects\项目名称\Bin\project.apk (133.87 MiB)
>      checksum: bf4338bb9473c97d828e0da867eac37f7e2aae3a1e684ed0d5f3a3f71be6287 (sha256)
>      - zipalign success
>      - sign success
>      VERIFY
>      file: E:\Android\yjy\AndroidKiller_v1.3.1\projects\项目名称\project-aligned-signed.apk (134.15 MiB)
>      checksum: 64c6395ee8c153a7ab0efefc63c65ef5f0b12d3e6400fcc9e55550df78976783 (sha256)
>      - zipalign verified
>      - signature verified
>                Subject: C=3124, ST=2, L=22, O=11, OU=22, CN=11122
>                SHA256: 2c00ce16755454a52babe1ab4d3a79adc24eb2b44aff4708bcef624766ea17e6 / SHA256withRSA
>                Expires: Sun Nov 22 11:46:04 CST 2048
>
> Successfully processed 1 APKs and 0 errors in 8.09 seconds.
> 系统找不到指定的文件。
> APK 签名失败!


不知道为什么,最后一步的时候,我的“()”消失了,我没找具体原因,从日志里看出来了,所以项目名称尽量不用特殊字符
## 解决方案:项目名称里不要有括号()


# 问题2:invalid resource directory name: xxxxx\Project\res navigation

问题解答:由于Android Jetpack中的 (https://blog.csdn.net/qq_44950283/article/details/129944797) 组件,在aapt2中才可以使用,而android killer使用的默认是aapt1也就是aapt。

之前的解决方案:在项目目录手动使用apktools命令进行打包,
> java -jar apktool-2.7.1.jar b Project --use-aapt2 -o xxx.apk


然后导入模拟器使用mt签名,然后再安装。(这个过程很墨迹 )

```
新的解决方案:修改android killer的签名配置文件,强行使用aapt2
> 找到android killer目录 AndroidKiller_v1.3.1\bin\apktool中的 apktool.bat;右键-编辑
> 可以看到有一行命令
> 修改前:java -jar "%~dp0\apktool\apktool-2.7.1.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
>修改后:java -jar "%~dp0\apktool\apktool-2.7.1.jar" %1 %2 %3 %4 "--use-aapt2" %5 %6 %7 %8 %9
> 点击保存
```

### 问题2.1回编译会发生乱码情况。
```
E:\Android\yjy\AndroidKiller_v1.3.1\projects\瀹夊崜灏忔媷鎸嘝roject\res: error: failed to open directory: 绯荤粺鎵句笉鍒版寚瀹氱殑鏂囦欢銆? (2).
>brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1):
APK 编译失败,无法继续下一步签名!
```

## 解决方案:项目名称不要使用中文。

不知道为什么,aapt2的项目不能使用中文,这里我没有完美解决方案,只能每次编译前看看项目中是否有aapt2的资源,有的话就去修改参数,没有的话,就正常使用。

如果有大佬有完美解决方案,可以留言,感激不尽。
有ak其他问题也都可以留言,基本上保证apktool新版本基本不会有问题。

感谢
页: [1]
查看完整版本: Android Killer修复关于aapt2的问题