Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Travis.yml./gradlew:权限被拒绝_Android_Gradle_Continuous Integration_Travis Ci - Fatal编程技术网

Android Travis.yml./gradlew:权限被拒绝

Android Travis.yml./gradlew:权限被拒绝,android,gradle,continuous-integration,travis-ci,Android,Gradle,Continuous Integration,Travis Ci,对现有Android项目使用Travis CI,调用 $ ./gradlew build connectedCheck 我得到这个错误: /home/travis/build.sh: line 45: ./gradlew: Permission denied The command "./gradlew build connectedCheck" failed and exited with 126 during . 它取决于unixgradlew脚本的exec权限 可以使用以下命令进行修复

对现有Android项目使用Travis CI,调用

$ ./gradlew build connectedCheck
我得到这个错误:

/home/travis/build.sh: line 45: ./gradlew: Permission denied
The command "./gradlew build connectedCheck" failed and exited with 126 during .

它取决于unix
gradlew
脚本的exec权限

可以使用以下命令进行修复:

git update-index --chmod=+x gradlew
了解问题的一点说明。
首先,您可以使用以下方法检查您的权限:

git ls-tree HEAD
你会看到:

100644 blob xxxxxxxxxxx gradlew
如您所见,该文件具有644权限

通过在gradlew文件上设置可执行标志将其更改为755:

git update-index --chmod=+x gradlew
before_install:
 - chmod +x gradlew
只需提交并推送更改:

git commit -m "permission access for travis"

[master e80ab1b] gradlew permission access for travis
 1 file changed, 0 insertions(+), 0 deletions(-)
 mode change 100644 => 100755 gradlew
最后一次检查再次运行git ls tree以查看更改:

git ls-tree HEAD
你可以看到:

100755 blob xxxxxxxxxxxxx   gradlew

解决此问题的另一种方法是使用:

git update-index --chmod=+x gradlew
before_install:
 - chmod +x gradlew
这种解决方案不会更改git repo中的权限,只会更改执行中的权限运行时

script:
 - chmod +x ./gradlew build connectedCheck
谢谢大家。 此代码可用。
关键的焦点是chmod+x,它起作用了。在我的例子中,我是在“之前的剧本”中这样做的。谢谢没有理由不让脚本以正确的权限签入git(我选择1754)。我不想在构建脚本中添加额外的
chmod
命令,因为1)它增加了不必要的复杂性2)对于重新克隆repo的其他团队成员不起作用。谢谢。它帮助了我。没有像“build”(可能有一个目录)和“connectedCheck”这样的文件,所以这里没有必要这样做。最好看看公认的答案