【问题标题】:gradlew: Permission Deniedgradlew:权限被拒绝
【发布时间】:2013-07-14 03:29:19
【问题描述】:

我正在尝试从命令行运行 gradlew,但经常遇到以下错误。

Brendas-MacBook-Pro:appx_android brendalogy$ ./gradlew compileDebug --stacktrace
-bash: ./gradlew: Permission denied

我已经从我的项目目录运行这个命令。需要运行此命令,因为我在 Android Studio 0.2.x 上遇到了与此处遇到的相同(非描述性)错误:Android studio and gradle build error

我做错了什么,我该如何解决?

【问题讨论】:

    标签: gradle android-studio gradlew


    【解决方案1】:

    尝试在你的 gradlew 文件上设置执行标志:

    chmod +x gradlew

    【讨论】:

    • 默认模板没有将 gradlew 设置为可执行文件有什么原因吗?我不得不这样做似乎很奇怪。
    • 我在设置 Atlassian Bamboo 构建时遇到了类似的问题;从 git 中检查 gradlew 文件,它没有可执行属性,因此必须将“脚本”任务添加到我的工作中,以 chmod +x 正如@Vincent 指出的那样。谢谢!
    • @Vincent 您能否详细说明为什么需要这样做才能解决权限问题?
    • @Abhijit 你可以通过ls -l 来检查文件权限。这为您提供了最左侧列的文件权限。
    • 如果你有 git repo,别忘了git update-index --chmod=+x ./gradlew
    【解决方案2】:

    也可以用

    来解决
    git update-index --chmod=+x gradlew
    

    【讨论】:

    • Windows 用户的正确修复。谢谢!
    • ... 之后需要提交和推送
    【解决方案3】:

    需要更新gradlew的执行权限

    本地chmod +x gradlew

    Git

    git update-index --chmod=+x gradlew
    git add .
    git commit -m "Changing permission of gradlew"
    git push
    

    你应该看到:

    mode change 100644 => 100755 gradlew
    

    【讨论】:

      【解决方案4】:

      您可以在命令前使用“bash”:

      bash ./gradlew compileDebug --stacktrace
      

      【讨论】:

        【解决方案5】:

        Jenkins > 项目仪表板 >(选择 gradle 项目)配置 > 构建

        x使用 Gradle Wrapper

        使 gradlew 可执行 x

        【讨论】:

        • 它对你有用吗?我在我的工作设置中设置了复选框,但它并没有导致 gradlew 可执行。我使用clean before checkout 选项。
        • 为我工作!你必须明确告诉 jenkins 来生成可执行文件。
        【解决方案6】:

        git update-index --chmod=+x gradlew

        此命令效果更好,尤其是在非 unix 系统上。

        【讨论】:

          【解决方案7】:

          只需在 Android Studio 终端(或您的 Linux/Mac 终端)中输入 command

          chmod +x gradlew
          

          并尝试:

           ./gradlew assembleDebug
          

          【讨论】:

            【解决方案8】:

            在android文件夹上cmd运行

            chmod +x gradlew
            

            然后运行

            ./gradlew clean
            

            然后根项目运行

            react-native run-android
            

            【讨论】:

              【解决方案9】:

              通过此步骤将权限设置为 gradlew

              steps {
                  echo 'Compile project'
                  sh "chmod +x gradlew"
                  sh "./gradlew clean build --no-daemon"
              }
              

              【讨论】:

                【解决方案10】:

                如果在 chmod'ing 后它不起作用,请确保您没有尝试在 /tmp 目录中执行它。

                【讨论】:

                  【解决方案11】:

                  试试下面的命令:

                  chmod +x gradlew && ./gradlew compileDebug --stacktrace
                  

                  【讨论】:

                    【解决方案12】:

                    尝试在 mac 上执行 flutter run 时遇到了同样的错误。显然,在您的颤振项目中,有一个文件 android/gradlew 预计是可执行的(但它不是)。所以就我而言,

                    chmod a+rx android/gradlew
                    

                    我使用了这个命令并执行了项目

                    【讨论】:

                      【解决方案13】:

                      当您将在 windows 中构建的 android 项目迁移到任何 unix 操作系统 (Linux) 时,会出现此问题。所以你需要在你的项目目录中运行下面的命令来将dos换行符转换为Unix换行符。

                      find . -type f -print0 | xargs -0 dos2unix
                      

                      如果你没有安装dos2unix。使用安装它

                      在 CentOs/Fedora 中

                      yum install dos2unix
                      

                      在 Ubuntu 和其他发行版中

                      sudo apt install dos2unix
                      

                      【讨论】:

                        猜你喜欢
                        • 2018-02-22
                        • 2016-02-22
                        • 1970-01-01
                        • 1970-01-01
                        • 2015-08-30
                        • 1970-01-01
                        • 2018-07-19
                        相关资源
                        最近更新 更多