ubuntu系统下载安装d2j-dex2jar和使用教程

问题背景:
在将dex文件转换为jar文件时,使用dex2jar-tools-2.1版本执行命令出现以下错误信息
~/Tool2/dex2jar-tools-2.1/dex-tools-2.1-SNAPSHOT$ ./d2j-dex2jar.sh classes.dex
dex2jar classes.dex -> ./classes-dex2jar.jar
com.googlecode.d2j.DexException: not support version.
    at com.googlecode.d2j.reader.DexFileReader.<init>(DexFileReader.java:149)
    at com.googlecode.d2j.reader.DexFileReader.<init>(DexFileReader.java:209)
    at com.googlecode.d2j.reader.MultiDexFileReader.open(MultiDexFileReader.java:36)
    at com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:105)
    at com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:290)
    at com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:33)
    
问题原因是当前用的 dex2jar 版本太老(2.1),不支持新的 Android dex 文件格式(Android 9+ / API 28+ 的 dex 版本)老 dex2jar 只能解析旧版 dex,新版 dex 直接报错。
直接下载 最新版 dex2jar,支持所有新版 dex。

一、获取源码
访问官方发布页面下载源码包:
https://github.com/pxb1988/dex2jar/releases
选择 Source code (tar.gz) 下载 dex2jar-2.4 版本。
二、解压源码
执行解压命令,获取源码目录:

tar -zxvf dex2jar-2.4.tar.gz

三、编译构建
进入源码根目录,执行编译脚本:

cd dex2jar-2.4
./gradlew distZip

四、提取工具包
编译完成后,进入工具分发目录,解压构建产物:


cd dex-tools/build/distributions
unzip dex-tools-2.x.zip

五、执行转换
进入工具目录,通过命令行将 APK 文件转换为 JAR 文件:


cd dex-tools-2.x
sh d2j-dex2jar.sh -f ~/path/to/apk_to_decompile.apk

说明:命令中需指定待转换 APK 的绝对路径,转换完成后,将在当前目录生成apk_to_decompile-dex2jar.jar输出文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值