报错背景

今天使用AndroidKiller V1.3.1,反编译一个APK,遇到如下报错:

当前 Apktool 使用版本:Android Killer Default APKTOOL
正在反编译 APK,请稍等...
>I: 使用 ShakaApktool 2.0.0-20150914
>I: 正在加载资源列表...
>I: 反编译 AndroidManifest.xml 与资源...
>I: 正在从框架文件加载资源列表: C:\Users\lijie01\apktool\framework\1.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 反编译失败,无法继续下一步源码反编译!

解决

参考这位大佬的博客:https://blog.csdn.net/u012400885/article/details/80409689 进行解决:

下载新版本的Apktool地址:https://down.52pojie.cn/Tools/Android_Tools/

然后打开AndroidKiller_v1.3.1路径,进行替换,注意名字要改成和原来一样的名字。

更换好之后,重新运行AndroidKiller:

当前 Apktool 使用版本:Android Killer Default APKTOOL
正在反编译 APK,请稍等...
>I: 使用 ShakaApktool 3.0.0-20170503
>I: 正在加载资源列表...
>I: 反编译 AndroidManifest.xml 与资源...
>I: 正在从框架文件加载资源列表: C:\Users\lijie01\AppData\Local\apktool\framework\1.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 反编译失败,无法继续下一步源码反编译!

虽然还是报错,但是注意看报错信息,已经报不同错了,

>Exception in thread "main" java.lang.IllegalArgumentException: expected element name 'style' and not 'resources'

继续搜索这个错误,然后根据这个大佬的文章进行如下步骤:https://www.bilibili.com/read/cv1785046/

使用AndroidKillerPlugin

下载

下载地址:https://github.com/supperlitt/AndroidKillerPlugin/releases

修改配置

注意,一定要修改正确这个路径,不然AndroidKillerPlugin解压的文件不会解压到你本地的AndroidKiller路径下,还是会失败的。

使用

基本上都是报解压文件失败,这个时候自己手动压解一下就好。

手动压解过程:

在重新执行AndroidKillerPlugin,

解压成功,

如果项目比较大,那么这个过程就会稍微耗时长。

反编译成功

在历史工程中重新打开一下,

反编译成功。

总结

学好使用原生apktool、dex2jar很重要,这样能更好理解Android反编译,并且遇到问题自己也能解决,不会像上面那样 工具报错了,自己没有排错的能力,只能查搜索引擎。

后面会写文章介绍apktool、dex2jar的原理,喜欢可以给我留言、关注、点赞这样我就会有更大的动力,更快的出文章。

解决AndroidKiller APK 反编译失败,无法继续下一步源码反编译!的更多相关文章

  1. 编译最新版webrtc源码和编译好的整个项目10多个G【分享】

    编译最新版webrtc源码和编译好的整个项目10多个G[分享] 参考https://webrtc.org/native-code/development/编译最新版webrtc源码: Git clon ...

  2. 【转】Linux CentOS内核编译:下载CentOS源码、编译2.6.32-220的错误(apic.c:819 error 'numi_watchdog' undeclared)

    一.下载CentOS源码 1.1 查看CentOS版本 cat /etc/issue 1.2 查看Linux内核版本 uname -r 1.3 下载 文件名:kernel-2.6.32-220.el6 ...

  3. redhat6.2 clang编译环境搭建(采用源码包编译安装)

    1. About clang++ office site:http://clang.llvm.org/ A major focus of our work on clang is to make it ...

  4. 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

                 分类: Android 系统开发(5)                                              作者同类文章X 版权声明:本文为博主原创文章 ...

  5. Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)

    Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...

  6. Hadoop2.x源码-编译剖析

    1.概述 最近,有小伙伴涉及到源码编译.然而,在编译期间也是遇到各种坑,在求助于搜索引擎,技术博客,也是难以解决自身所遇到的问题.笔者在被询问多次的情况下,今天打算为大家来写一篇文章来剖析下编译的细节 ...

  7. 【转】Android用NDK和整套源码下编译JNI的不同

    原文网址:http://www.devdiv.com/android_ndk_jni_-blog-99-2101.html 前些天要写个jni程序,因为才几行代码,想着用ndk开发可能容易些,就先研究 ...

  8. CentOS 7.2使用源码包编译安装MySQL 5.7.22及一些操作

    CentOS 7.2使用源码包编译安装MySQL 5.7.22及一些操作 2018年07月05日 00:28:38 String峰峰 阅读数:2614   使用yum安装的MySQL一般版本比较旧,但 ...

  9. 动态方式破解apk进阶篇(IDA调试so源码)

    动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/qq_21051503/article/details/74907449 下面就说关于在IDA中And ...

随机推荐

  1. 细数 SharedPreferences 的那些槽点 !

    前言 最近在处理一个历史遗留项目的时候饱受其害,主要表现为偶发性的 SharedPreferences 配置文件数据错乱,甚至丢失.经过排查发现是多进程的问题.项目中有两个不同进程,且会频繁的读写 S ...

  2. Redis学习总结(五)--Redis集群创建

    在之前我们讲到了主从,但是对于大数据量的场景下我们就需要用到集群了,让我们来了解下集群吧. 为什么需要集群 单机内存太小 redis最高可以达到10万/s 请求,如果超过该频率呢? 数据分布方式 数据 ...

  3. SpringCloud阶段总结

    学习时间:8.15 -- 8.29 学习目标:了解SpringCloud常见组件的使用 学习方式: 输入:视频+博客+开源项目代码参考 输出:调试代码+写博客输出 组件列表 服务注册:Eureka 客 ...

  4. python程序中使用MySQL数据库

    目录 python程序中使用MySQL数据库 1 pymysql连接数据库 2 sql 注入 3 增删改查操作 4 pymysql使用总结 python程序中使用MySQL数据库 1.python中使 ...

  5. JS-对象的深浅拷贝及其新增方法测试

    我们在了解数据类型的时候,都知道一般的字符,数值,undefined和布尔值等都为一般数据类型,它们在进行数据传输的时候,进行的是值传递,当我们修改新数据,是不影响老数据的.但是我们今天要讲的是数据类 ...

  6. React-native 关于 android真机 出现连不上服务器

    我们都知道使用RN开发移动端应用时,我们要在手机端运行程序,可以下载 expo 这个软件进行扫描二维码连接到开发的APP上 有时会有突然连不上之前连上过的应用,出现如下画面 首先保证你的电脑和你的手机 ...

  7. Linux shell 内部命令与外部命令有什么区别以及怎么辨别

    内部命令实际上是shell程序的一部分,其中包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留 ...

  8. Delphi - 获取文件大小

    GetFileSize获取文件大小 封装成如下函数,可以直接使用: ///函数功能:获取文件大小,单位取KB,小数自动进位 ///参数:sFilePath文件全路径 ///Result: 成功是返回文 ...

  9. 浅谈TCP协议,总算明白它是干什么的了

    一.什么是TCP,他是干什么的? TCP即传输控制协议(Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通讯协议. TCP是为了在不可靠的互联网 ...

  10. 阿里云(ecs服务器)使用1-安装Mongdb数据库以及远程部署

    1.下载mongodb 百度云盘连接 :链接:https://pan.baidu.com/s/1b-hTS0XHQKpatecFoumLxw  提取码:z9ax 并送上可视化工具:链接:https:/ ...