AXMLPrinter2.jar反编译xml文件时 java.lang.ArrayIndexOutOfBoundsException错误

前段时间找到一个不错的应用程序,想进行反编译,看看他的代码结构。但是在反编译的时候,遇到了

反编译不过的错误。

对于android中反编译apk网上很多介绍 ,我想大家百度一下就能找到对应的文章,今天主要就说在反编译 apk的xml文件时

错误问题。

现在说一下解决的思路:

首先创建一个简单的工程----为了生成自己的apk

进行编译,并对apk中res\main.xml通过rar的方式解压出来,并利用AXMLPrinter2.jar的方式进行反编译

发现能正常反编成功。----但是为什么下载的apk进行xml文件反编译时 就过不去呢。

通过分析发现在AndroidManifest.xml中存在差异。-----刚开始创建工程的时候有留意sdk版本,开始只是猜测

能反编译成功的工程AndroidManifest.xml

后来通过改正minSdkVersion的版本

再生成apk并对main.xml文件进行反编译发现产生

错误。

最后结论:

在minSdkVersion <= 7 时,利用AXMLPrinter2.jar 就能正常反编译出xml文件

大于7以后就不能正常反编译xml文件(AndroidManifest.xml除外)

再给大家分享一个批量反编译xml文件的方式:

首先创建一个 *.txt文件

讲里面内容编写成

for /r layout %%a in (*.xml) do @java -jar AXMLPrinter2.jar "%%a" >>"%%a".txt

然后将此txt文件扩展名改成 bat形式,并将此BAT文件和AXMLPrinter2.jar放在同一个目录下,将要反编译的xml都放到layout目录下,

通过执行bat文件就可以生成多个xml文件的反编译结果。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值