M1 Mac运行Android模拟器报MergeJavaResWorkAction错误如何解决
M1芯片Mac运行Android模拟器抛出MergeJavaResWorkAction异常解决方案
报错翻译
> 执行com.android.build.gradle.internal.tasks.MergeJavaResWorkAction时发生故障 > com.google.common.base.VerifyException(无错误提示信息) * 建议操作: 添加--stacktrace参数运行可获取堆栈跟踪信息,添加--info或--debug参数运行可获取更多日志输出,添加--scan运行可获取完整洞察信息
问题根因
该异常由Google Guava工具库的校验规则触发,绝大多数M1芯片Mac的arm架构环境下出现该问题,都是项目依赖存在多版本Guava冲突、或构建工具版本未适配arm架构导致。
解决方案
1. 强制统一Guava依赖版本
在项目根目录的build.gradle文件中添加强制版本配置,避免多版本依赖冲突:
allprojects { configurations.all { resolutionStrategy { // 统一指定适配Android环境的Guava版本,禁止使用jre后缀版本 force "com.google.guava:guava:31.1-android" } } }
2. 全量清理缓存重新构建
- 打开Android Studio,点击菜单栏
File > Invalidate Caches...,勾选清除文件系统缓存、本地历史记录后重启IDE - 进入项目根目录执行清理命令:
./gradlew clean - 重启后重新编译运行项目即可
3. 适配构建工具版本
如果上述操作无效,检查构建工具版本兼容性:
- Android Gradle Plugin版本需升级到7.0及以上,低版本插件对arm架构存在已知兼容性缺陷
- 对应Gradle Wrapper版本需和插件版本匹配,7.0+插件对应Gradle 7.0+版本
4. 定位细分冲突
如果问题仍然存在,执行./gradlew build --stacktrace命令获取完整堆栈信息,可直接定位触发校验异常的具体依赖项,单独处理对应依赖即可。
内容的提问来源于stack exchange,提问作者Phuripat Kongsakban
相关产品推荐
相关产品推荐

