Mac BigSur桌面存放Android项目Gradle构建耗时达40分钟问题求助
问题原因
- 系统权限限制:Mac OS BigSur对桌面、文档等用户目录下的文件夹新增了隐私访问控制,Android Studio未获得完整磁盘访问权限时,每次读取项目文件都会触发系统权限校验,产生巨量IO耗时,这是项目放在桌面时构建极慢的核心原因,从提供的Build Analyzer截图也能看出,绝大多数构建耗时集中在文件读写相关的任务上,符合权限限制导致IO阻塞的特征
- Gradle JVM内存分配不足:你的设备是16GB内存的Mac,当前仅给Gradle分配2GB堆内存,完全无法满足构建需求,会频繁触发GC卡顿,同时配置中的
-XX:MaxPermSize是Java 8之前的废弃参数,配置无效还可能带来额外兼容性开销 - 冗余配置拖慢速度:项目未引入任何第三方非AndroidX库的情况下开启了
android.enableJetifier=true,Jetifier的扫描转换逻辑会完全无意义地占用构建时间 - 开发工具版本老旧:Android Studio 4.1.1是2020年的旧版本,对Mac OS BigSur的适配不完善,自带的Gradle版本性能优化不足
可行优化方案
- 解决系统权限问题
打开Mac的【系统偏好设置】→【安全性与隐私】→【隐私】→【完全磁盘访问权限】,勾选Android Studio和终端(Terminal),重启Android Studio后再尝试构建;也可将项目文件夹移出桌面、文档这类受系统隐私保护的目录,比如放在用户根目录下单独新建的开发专用文件夹中 - 优化gradle.properties配置
调整后的配置参考如下:org.gradle.daemon=true # 16G内存的Mac建议分配8-12G给Gradle,移除废弃的MaxPermSize参数 org.gradle.jvmargs=-Xmx10g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true org.gradle.configureondemand=true # 开启构建缓存,大幅提升增量构建速度 org.gradle.caching=true android.useAndroidX=true # 没有非AndroidX的第三方库时直接关闭Jetifier android.enableJetifier=false - 工具版本升级
升级Android Studio到最新稳定版,新版本对Mac系统的适配更好,同时自带的新Gradle、AGP版本有大量构建性能优化 - 其他可选优化
日常开发构建时选择Debug模式,关闭代码混淆、资源压缩等非必要的Release构建任务;如果不需要原生库,可在build.gradle中关闭ndk自动构建逻辑,限制ABI的编译架构
内容的提问来源于stack exchange,提问作者Abhijit Chakra
相关产品推荐
相关产品推荐

