错误场景
最近用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打包,一切变得顺利了