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

Mac上Android Studio构建报错java.io.FileNotFoundException(Operation not permitted)

问题根因

这个报错是AGP(Android Gradle 插件)配套的Jacoco任务读取build目录下动态生成的类文件时,权限被macOS系统拦截导致的。你使用的Android Studio 4.2属于2021年的老旧版本,配套的AGP版本和macOS 10.16(即Big Sur / macOS 11)的文件访问机制存在已知兼容问题,Gradle守护进程的权限和Android Studio本身的权限并不完全打通,所以单独给AS授予全磁盘访问权限无法覆盖Gradle执行过程中的权限请求。

解决方案

1. 清理权限残留

  • 先彻底停止所有运行中的Gradle守护进程,在项目根目录执行终端命令:./gradlew --stop
  • 手动删除项目根目录下的.gradle隐藏文件夹、app模块下的build文件夹,不要使用AS自带的clean功能,避免残留带权限限制的文件
  • 给整个项目目录递归授予当前用户读写权限,终端进入项目根目录执行:chmod -R u+rw ./,如果仍有问题可临时执行chmod -R 777 ./验证

注意:如果项目存放在iCloud同步目录、桌面、下载文件夹这类系统受保护路径,建议将项目迁移到用户主目录下的自定义文件夹,避开系统文件保护、云同步的锁文件拦截。

2. 修复增量构建兼容问题

如果执行完第一步后仍可复现问题,可先在项目根目录的gradle.properties文件中添加以下配置,关闭增量构建和构建缓存验证问题来源:

org.gradle.configureondemand=false
org.gradle.caching=false
android.enableBuildCache=false

如果添加配置后不再报错,说明你当前使用的AGP版本存在增量构建权限bug,将AGP升级到4.2.2或7.0.x稳定版即可解决,不需要长期关闭增量构建功能。

3. 修复Jacoco兼容问题

报错栈明确指向Jacoco覆盖率任务:

  • 如果你当前不需要执行代码覆盖率测试,直接在app模块的build.gradle中关闭debug构建的覆盖率采集即可:
    android {
        buildTypes {
            debug {
                testCoverageEnabled false
            }
        }
    }
    
  • 如果你需要使用Jacoco能力,将Jacoco插件版本升级到0.8.7及以上即可,老版本Jacoco和macOS Big Sur的文件访问接口存在兼容缺陷。

4. 终极解决方案

Android Studio 4.2对macOS 11及以上版本的兼容性存在大量已知问题,如果上述方案都无法彻底解决,直接升级Android Studio到Electric Eel(2022.1.1)及以上的稳定版,即可从根源解决版本兼容导致的各类权限异常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:45:02