Apple M系列CPU下Android项目Rebuild遇Dex方法数超限问题求助
原因分析:Apple Silicon设备上Rebuild时Feature模块AndroidTest Dex超64K问题
Run与Rebuild的构建逻辑差异
点击Run时,Android Studio执行增量构建,仅处理本次运行必需的代码和资源,可能跳过了部分feature模块AndroidTest的完整dex合并流程;而Rebuild是全量构建,会重新编译并合并所有模块的测试代码dex,此时feature模块的AndroidTest代码+依赖的方法总数超过单个dex文件的64K方法数限制,触发报错。Apple Silicon上AGP的测试变体处理差异
适配Apple Silicon架构的早期Android Gradle Plugin(AGP)版本,在处理模块级AndroidTest变体的dex合并时,存在主模块multidex配置未向下传递的问题。主app模块启用了multidex,但feature模块的AndroidTest变体默认未继承该配置;而Windows平台的AGP构建逻辑可能默认给测试变体启用了隐性的multidex支持,或对测试dex合并做了优化,因此不会触发报错。测试代码的方法数阈值触发
你的feature模块的AndroidTest代码(含依赖的测试库、第三方框架)方法总数刚好触及64K阈值,在Apple Silicon的全量Rebuild流程中,AGP未自动为测试变体启用multidex,导致dex合并失败;而Run构建的增量逻辑可能通过代码裁剪、仅打包必要测试类等方式,让方法数低于阈值,从而正常构建。
内容的提问来源于stack exchange,提问作者Mostafa Arian Nejad
相关产品推荐
相关产品推荐

