报错背景

今天使用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. CSS3 transform封装

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. 随笔编号-16 MySQL查看表及索引大小方法

    目标:阿里云OS数据库DMS,单个主库最大存储空间为2T.最近公司业务扩展很快,一天数据量达到7.9G左右.要求备份清理历史数据,备份到其他磁盘. 准备: 如果想知道MySQL数据库中每个表占用的空间 ...

  3. Codeforces Round #481 (Div. 3) C. Letters

    题目地址:http://codeforces.com/contest/978/problem/C 题解:有n个宿舍,每个宿舍人不一样多,有m封信,每封信送给对应的第m间房间,问这封信是给第几个宿舍,第 ...

  4. codeforces 572 C. Lengthening Sticks(数学)

    题目链接:http://codeforces.com/contest/572/problem/C 题意:给出a,b,c,l要求a+x,b+y,c+z构成三角形,x+y+z<=l,成立的x,y,z ...

  5. CF985B Switches and Lamps 思维 第十九

    Switches and Lamps time limit per test 3 seconds memory limit per test 256 megabytes input standard ...

  6. PHP-02.文件上传、php保存/转移上传的文件、常见的网络传输协议、请求报文及属性、响应报文及属性

    关系数组 array("key"=>"value",...) ; get没有数据大小的限制 post上传大小没有限制 不指定上传方式,默认是get 文件上 ...

  7. 【Offer】[18-1] 【在O(1)时间内删除链表节点】

    题目描述 思路分析 测试用例 代码链接 题目描述 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点. 思路分析 一般我们删除单链表中的节点是需要遍历链表,找到要删除节点的前一个 ...

  8. Map四种获取key和value值的方法,以及对map中的元素排序(转)

    获取map的值主要有四种方法,这四种方法又分为两类,一类是调用map.keySet()方法来获取key和value的值,另一类则是通过map.entrySet()方法来取值,两者的区别在于,前者主要是 ...

  9. 在Linux上安装nginx时遇到的问题,真的好坑啊!!!!

    解决了两个小时愣是卡着没动,结果一请大神问题就迎刃而解,怪自己太粗心,一下午差点就被这个问题安排的明明白白,直接上问题: makeFile时的问题:   checking for OS + Linux ...

  10. javase复习(一)

    break,continue,return区别: continue:跳出本次循环,还要再执行下次循环 break:跳出循环,若有多层循环则只跳出本层循环,其他层的循环需要挨个break return: ...