前言:(着急的可以先不看)AndroidKillder使用了好久了,不管jeb或者别的tools有多优秀,习惯确实很重要,不知道有多少人和我一样喜欢killer的ui;或者说已经习惯了用killer,同时也遇到很多问题。虽然killer不维护了,但是还是想用它。之前遇到很多问题,都在凑合解决,今天终于有点空了,来了论坛找各种问题的答案,特别是关于aapt2的问题,一直没有得以解决,今天来说一下killer遇到的两个问题。这也是从我使用killer这3年以来遇到的大部分问题。
问题1:回编译之后apk安装失败
这种问题一般都是由于签名的问题,因为android killer使用的是v1签名;
之前的解决方案:打包之后,导入模拟器,使用MT进行签名再安装。
新的一键式解决方案:替换掉根目录的签名文件和签名工具的jar
这里我就不赘述了,参考链接:AndroidKiller使用V3签名
问题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:
[0] 476a92f9 E:\Android\yjy\AndroidKiller_v1.3.1\bin\apktool\bjx.jks (RELEASE_CUSTOM)
- 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 [v2, v3]
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
[Wed Nov 29 11:48:05 CST 2023][v1.2.1]
Successfully processed 1 APKs and 0 errors in 8.09 seconds.
系统找不到指定的文件。
APK 签名失败!
不知道为什么,最后一步的时候,我的“()”消失了,我没找具体原因,从日志里看出来了,所以项目名称尽量不用特殊字符
解决方案:项目名称里不要有括号()
问题2:invalid resource directory name: xxxxx\Project\res navigation
问题解答:由于Android Jetpack中的 Navigation 组件,在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): [C:\Users\M1861\AppData\Local\Temp\brut_util_Jar_19857296575309770097273044741215054131.tmp, compile, --dir, E:\Android\yjy\AndroidKiller_v1.3.1\projects\安卓小拇指\Project\res, --legacy, -o, E:\Android\yjy\AndroidKiller_v1.3.1\projects\安卓小拇指\Project\build\resources.zip]
APK 编译失败,无法继续下一步签名!
解决方案:项目名称不要使用中文。
不知道为什么,aapt2的项目不能使用中文,这里我没有完美解决方案,只能每次编译前看看项目中是否有aapt2的资源,有的话就去修改参数,没有的话,就正常使用。
如果有大佬有完美解决方案,可以留言,感激不尽。
有ak其他问题也都可以留言,基本上保证apktool新版本基本不会有问题。
感谢