1. ホーム
  2. android

[解決済み] Travis.yml ./gradlew : パーミッションが拒否されました。

2022-08-01 18:29:07

質問

使用方法 トラビスCI を呼び出している既存のAndroidプロジェクトに対して

$ ./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 スクリプトを実行します。

コマンドで修正できます。

git update-index --chmod=+x gradlew

問題を理解するために少し説明します。

まず最初に、あなたは、使用してパーミッションを確認することができます。

git ls-tree HEAD

見えてきます。

100644 blob xxxxxxxxxxx gradlew

ご覧のように、このファイルには644のパーミッションがあります。

gradlewファイルの実行フラグを755に変更することで修正します。

git update-index --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


この問題を解決する別の方法として

before_install:
 - chmod +x gradlew

この種の解決策は、git リポのパーミッションを変更するのではなく、実行時のパーミッションを変更するだけです。