You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用d8.bat从Jar生成多Dex文件?解决方法数超限问题

用d8.bat从Jar生成多Dex文件的解决方法

d8没有直接对应multiDexEnabled=true的命令行参数,但可以通过指定主dex类列表的方式拆分生成多Dex文件,具体步骤如下:

1. 生成主dex类列表文件

你需要先确定哪些类必须放在主dex中(比如应用启动类、MultiDex相关类),可以手动编写,也可以用d8自动生成默认列表:

自动生成主dex列表

执行以下命令,d8会自动分析启动时依赖的类,输出到指定的列表文件:

d8 class.jar --print-main-dex-list=maindexlist.txt --min-api=21
  • --print-main-dex-list:指定生成主dex类列表的输出文件
  • --min-api:指定最低兼容API级别,多dex功能需要该参数配合

手动编写主dex列表

如果需要自定义主dex内容,创建maindexlist.txt,每行写一个类的全路径(注意用/分隔包名,后缀.class),例如:

com/yourpackage/YourApplication.class
androidx/multidex/MultiDex.class

2. 生成多Dex文件

用--main-dex-list参数指定刚才的列表文件,执行d8命令生成多Dex:

d8 class.jar --main-dex-list=maindexlist.txt --min-api=21 --output=output_dir
  • --main-dex-list:指定主dex必须包含的类列表,d8会将这些类放入classes.dex,剩余类自动拆分到classes2.dex、classes3.dex等文件中
  • --output:指定输出目录,所有生成的Dex文件会放在该目录下

注意事项

  • 如果需要兼容API 21以下的设备,必须确保MultiDex相关类在主dex中,否则应用启动时会崩溃
  • --min-api参数不可省略,不同API级别下d8的多dex生成逻辑会有差异

内容的提问来源于stack exchange,提问作者yiminglv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 13:51:14