Android Studio运行Flutter项目切换模拟器报classpath依赖解析错误
问题根因
该报错由Gradle缓存的javax.xml.bind包元数据文件损坏触发:Flutter web端运行不依赖Android构建链路,所以运行正常;切换到Android/鸿蒙等模拟器时会触发Android项目构建,读取损坏的依赖缓存就会抛出异常。
解决方案
按以下顺序操作即可:
- 关闭Android Studio,删除对应损坏的缓存目录:
C:\Users\admin\.gradle\caches\modules-2\metadata-2.96\descriptors\javax.xml.bind\jaxb-api\2.3.1\
如果嫌定位目录麻烦,也可以直接删除C:\Users\admin\.gradle\caches下的所有内容,Gradle后续会自动重新下载所需依赖,不会对项目造成影响 - 重新打开Android Studio,在项目根目录执行清理命令:
flutter clean - 执行依赖拉取命令:
flutter pub get - 重新启动模拟器运行项目即可
兼容异常补充方案
如果清理缓存后仍报错,基本可判定为JDK版本和Android Gradle插件版本不兼容:JDK 11及以上版本默认移除了javax.xml.bind模块,搭配3.x及更低版本的Android Gradle插件就会抛出该异常,按以下步骤调整即可:
- 打开项目
android/build.gradle文件,将com.android.tools.build:gradle版本升级到7.0及以上 - 打开
android/gradle/wrapper/gradle-wrapper.properties文件,将Gradle分发版本调整为和插件版本匹配的对应版本 - 重新构建项目即可
日志排查方法
如果问题仍未解决,可按官方提示追加运行参数获取更多日志信息:
- 进入项目android目录,执行
gradlew build --info可获取详细构建流程日志 - 执行
gradlew build --debug可获取调试级别的全量日志 - 执行
gradlew build --scan可获取结构化的完整构建问题分析报告
内容的提问来源于stack exchange,提问作者Amruta
相关产品推荐
相关产品推荐

