当Window遇到Mac OS出现Permission Denied/Could not expand时

错误场景

最近用gradle打包安卓新项目时

./gradlew assembleRelease

出现Permission Denied提示

在检查gradle配置信息无误后,使用管理员权限打包

sudo ./gradlew assembleRelease

这样能顺利打包,不过使用debug调试模式编译项目时,依然报错:Could not expand…我遇到的错误忘记记录了,大概类似如下的错误:

Execution failed for task ':app:prepareComAndroidSupportAppcompatV71901Library'.
 Could not expand ZIP '/opt/android-sdk/extras/android/m2repository/com/android/support/appcompat-v7/19.0.1/appcompat-v7-19.0.1.aar'.

错误分析

遇到这样的情况,十有八九因为团队成员用了不同的操作系统开发,特别是,有人用Window开发,有人用Mac开发,git版本管理下,这两个操作系统对文件权限的管理方式是不同。

解决该错误,涉及到的操作有:

查看项目目录权限

ls -l yourFilePath

我对一个安卓项目的根目录查看了权限,显示结果如下:

drwxr-xr-x  24 sugarya  staff  816 11  3 16:12 Ferrari

这里第一个字母d表示文件类型,r表示可读,w表示可写,x表示可执行

修改项目目录权限

Mac上鼠标操作

右键要修改的目录,点击显示简介,底部有一栏共享与权限,列出了该目录的权限情况,手动修改之。

用文字设定法

chmod [who] [+ | - | =] [mode] 文件名? ,详细情况可阅读参考资料

用数字设定法

假定要修改的目录为当前路径下名为myDirectory的文件夹

扫描二维码关注公众号,回复: 1922062 查看本文章
sudo chmod -R 777 myDirectory

如此myDirectory目录的权限就改为drwxrwxrwx,即该用户,同组用户以及其他用户都具有写、读、执行的权限

小结

权限修改完成后,再次使用gradle打包,一切变得顺利了

参考资料:

  1. http://blog.csdn.net/nitghost/article/details/4224034“>mac os x 文件权限管理
  2. 如何设置文件夹权限为777 mac os x系统下 chmod +x comdfile
  3. StackOverFlow:gradlew:Permission Denied

猜你喜欢

转载自blog.csdn.net/sugaryaruan/article/details/53558241