当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的文件夹

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值