element源码编译-解决AndroidKillerAPK反编译失败,无法进行下一步源码反编译!

错误背景

明天使用AndroidKillerV1.3.1反编译一个APK,遇到如下错误:

当前 Apktool 使用版本:Android Killer Default APKTOOL
正在反编译 APK,请稍等...
>I: 使用 ShakaApktool 2.0.0-20150914
>I: 正在加载资源列表...
>I: 反编译 AndroidManifest.xml 与资源...
>I: 正在从框架文件加载资源列表: C:Userslijie01apktoolframework1.apk
>I: 常规资源列表...
>I: 反编译资源文件...
>I: 反编译 values */* XMLs...
>Exception in thread "main" b.a.a.e: resource spec: 0x01010571
>	at b.a.d.a.p.a(Unknown Source)
>	at b.a.d.a.q.a(Unknown Source)
>	at org.c.b.b.c.a(Unknown Source)
>	at com.rover12421.shaka.a.b.p.a(Unknown Source)
>	at b.a.d.a.p.b(Unknown Source)
>	at b.a.d.a.w.a(Unknown Source)
>	at b.a.d.a.w.a(Unknown Source)
>	at b.a.d.a.a.t.d(Unknown Source)
>	at b.a.d.a.a.t.a(Unknown Source)
>	at b.a.d.a.a.u.h(Unknown Source)
>	at b.a.d.a.a.w.a(Unknown Source)
>	at b.a.d.a.a.w.a(Unknown Source)
>	at b.a.d.a.a(Unknown Source)
>	at b.a.d.a.c(Unknown Source)
>	at b.a.a.b(Unknown Source)
>	at b.a.E.a(Unknown Source)
>	at b.b.a.a(Unknown Source)
>	at b.b.a.a(Unknown Source)
>	at com.rover12421.shaka.cli.Main.main(Unknown Source)
APK 反编译失败,无法继续下一步源码反编译!

解决

参考鳄鱼的博客:解决:

新版Apktool下载地址:

然后打开AndroidKiller_v1.3.1路径替换。 请注意,名称应更改为与之前相同的名称。

更换后,再次运行AndroidKiller:

当前 Apktool 使用版本:Android Killer Default APKTOOL
正在反编译 APK,请稍等...
>I: 使用 ShakaApktool 3.0.0-20170503
>I: 正在加载资源列表...
>I: 反编译 AndroidManifest.xml 与资源...
>I: 正在从框架文件加载资源列表: C:Userslijie01AppDataLocalapktoolframework1.apk
>I: 常规资源列表...
>I: 反编译资源文件...
>I: 反编译 values */* XMLs...
>java.lang.NullPointerException
>	at b.a.d.a.a.x.a(Unknown Source)
>	at b.a.d.a.a.x.a(Unknown Source)
>	at b.a.d.a.a(Unknown Source)
>	at b.a.d.a.c(Unknown Source)
>	at b.a.a.b(Unknown Source)
>	at b.a.C.a(Unknown Source)
>	at b.b.a.a(Unknown Source)
>	at b.b.a.a(Unknown Source)
>	at com.rover12421.shaka.cli.Main.main(Unknown Source)
>Exception in thread "main" java.lang.IllegalArgumentException: expected element name 'style' and not 'resources'
>	at org.e.a.a.c(Unknown Source)
>	at b.a.d.a.a(Unknown Source)
>	at b.a.d.a.c(Unknown Source)
>	at b.a.a.b(Unknown Source)
>	at b.a.C.a(Unknown Source)
>	at b.b.a.a(Unknown Source)
>	at b.b.a.a(Unknown Source)
>	at com.rover12421.shaka.cli.Main.main(Unknown Source)
APK 反编译失败,无法继续下一步源码反编译!

其实还是一个错误,而且注意一下错误信息,它已经报了不同的错误,

>线程“main”中的异常java.lang.IllegalArgumentException:预期元素名称“style”而不是“resources”

继续搜索这个错误,然后按照这位掠夺者文章的步骤操作:

使用AndroidKillerPlugin下载

下载链接:

改变配置

注意路径一定要改正确,否则AndroidKillerPlugin解压后的文件不会解压到你本地的AndroidKiller路径下,仍然会失败。

使用

基本上都是报解压文件失败。 这时候它会自动自行解压。

自动解压过程:

重新执行AndroidKillerPlugin后,

解压成功,

如果项目比较大,这个过程会需要更长的时间。

反编译成功

在历史项目中重新打开它,

反编译成功。

总结

学会用好原生apktool和dex2jar是非常重要的,这样可以让你更好的理解Android反编译,但是你可以自己解决问题,而不是像之前的工具那样报错element源码编译,而且没有能力排查问题,所以你只能查搜索引擎。

我会写一篇文章介绍一下apktool和dex2jar的原理。 如果喜欢的话可以给我留言、关注、点赞,这样我会有更多的动力element源码编译,更快的发文章。