Mac端Android Studio报.DS_Store is not a directory错误如何解决
问题根因
你之前做的两个配置完全不解决这个问题:
- 把
.DS_Store加入.gitignore只会让Git不追踪这个文件,和本地构建流程没有任何关系 - Android Studio里的忽略文件规则只是把文件从左侧项目树里藏起来,Gradle打包资源的时候根本不会读这个配置
报错是因为你用Finder打开过构建生成的中间目录,macOS自动在app/build/intermediates/packaged_res/debug/路径下生成了.DS_Store系统文件,Gradle遍历资源路径的时候把这个文件当成了资源目录处理,直接抛出异常。
修复步骤
按顺序操作即可:
- 彻底关闭Android Studio
- 打开终端,切换到项目根目录
/Users/myname/Desktop/AndroidLabs2,依次执行两条命令:- 递归删除项目下所有已生成的.DS_Store文件:
find . -name ".DS_Store" -delete - 清空所有旧的构建中间产物和缓存:
./gradlew clean
- 递归删除项目下所有已生成的.DS_Store文件:
- (防止后续复发)配置Gradle打包规则,自动跳过所有.DS_Store文件:打开app模块下的
build.gradle文件,在android{}配置块中加入以下内容,原有配置不要改动:packagingOptions { exclude '**/.DS_Store' } - 重新打开Android Studio,等待Gradle同步完成后运行项目即可正常编译。
小提示:平时尽量不要用Finder打开
build、.gradle这类构建自动生成的目录,就能避免macOS在这些路径下自动生成.DS_Store,从根源减少这类无意义的构建报错。
内容的提问来源于stack exchange,提问作者HugeCodingNoobie
相关产品推荐
相关产品推荐

