Mac M1设备Flutter安卓构建Gradle报错java.io.IOException: Operation not supported
解决方案
该错误由Gradle获取缓存文件锁时,当前文件系统不支持锁定操作触发,结合Mac M1设备特性,可按以下优先级尝试修复:
- 检查项目存储路径
不要将项目存放在iCloud同步目录、第三方网盘同步目录、exFAT/NTFS格式的外接移动磁盘中,将项目移动到Mac本地APFS格式的用户目录下后重新构建。 - 清理Gradle缓存与守护进程
在项目android目录下依次执行以下命令:
执行完成后重新触发构建操作。# 停止所有运行中的Gradle守护进程 ./gradlew --stop # 删除项目本地Gradle缓存 rm -rf .gradle # 删除全局Gradle缓存 rm -rf ~/.gradle/caches/ - 升级Gradle版本适配M1架构
你当前使用的Gradle 6.7版本未适配M1芯片架构,存在兼容问题,可升级Gradle到7.0及以上版本:- 打开
android/gradle/wrapper/gradle-wrapper.properties文件,修改distributionUrl参数:distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip - 打开
android/build.gradle文件,升级Android Gradle插件版本到对应匹配版本:dependencies { classpath 'com.android.tools.build:gradle:7.0.4' }
- 打开
- 禁用Gradle文件锁(兜底方案)
如果以上方案均无效,可在项目根目录gradle.properties文件中添加以下配置,关闭Gradle缓存文件锁校验:org.gradle.cache.internal.lock.enabled=false
内容的提问来源于stack exchange,提问作者Thiago Mundim
相关产品推荐
相关产品推荐

