【问题标题】:ionic 2 - Error Could not find an installed version of Gradle either in Android Studioionic 2 - 错误无法在 Android Studio 中找到已安装的 Gradle 版本
【发布时间】:2017-09-14 18:13:15
【问题描述】:

我创建 ionic 2 项目并像这样添加诊断 cordova 插件:

ionic plugin add cordova.plugins.diagnostic

npm install --save @ionic-native/diagnostic

并像这样添加android平台:

ionic platform add android@latest

但是当使用ionic build android 构建时控制台给我这个错误:

Error: Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle 
in your path, or install Android Studio

我尝试手动下载 gradle.3.3-all.zip 并在 platform/android/cordova/lib/builders/GradleBuilder.js 中更改此 distributionUrl var

 var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'https\\://services.gradle.org/distributions/gradle-3.3-all.zip'

到:

var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'file:///E:/gradles/gradle-3.3-all.zip';

但不工作,控制台给我最后一个错误。

我不知道如何为 android@latest 版本添加 gradle

【问题讨论】:

  • 您是否正确安装了android sdk?
  • 是的,这个问题通过在路径系统变量中定义gradle解决,但是运行build android时,控制台给我:“你没有接受以下SDK组件的许可协议”错误
  • 您必须安装正确的 sdk 版本(通过 android sdk manager)并接受条款。 forum.ionicframework.com/t/…
  • 您解决了这个问题吗?我有同样的问题
  • 是的,我手动下载 gradle.zip 并将其包含在路径中。

标签: cordova ionic2 android-gradle-plugin cordova-plugins


【解决方案1】:

生命太短暂了,不能把它花在弄乱路径等上。

因为我有 Homebrew installed on the iMac,所以我只运行了这个命令:

brew install gradle

Ionic3 项目开始构建成功。

【讨论】:

  • brew update && brew install gradle -- 否则如果 brew 需要先更新,gradle 不会安装。
  • 为我在没有 Ionic 的情况下运行 Cordova CLI 工作。另外,我不必像 Kit 的评论中提到的那样做双线来安装 gradle。非常高兴 - 简单的解决方案。非常感谢@AFD !!!!
  • @Kit 现在运行brew install 时自动更新
  • “生命太短暂,不能花时间在 $complicated_topic 上”将是我在求职面试中的新王牌。
  • 非常感谢.. gr8 的帮助.. 真的“生命太短了,不能把它花在搞砸......”
【解决方案2】:

尝试安装 gradle 并将其包含在您的路径中。单击下面的链接以获取手册。 https://gradle.org/install

【讨论】:

  • 谢谢!可笑的是,cordova / ionic 仍然没有解决这个问题。
  • 如果你有 Android Studio 和一个使用 gradle 的项目,你可以找到它,例如: ~/apps/android-studio$ find 。 -type f -name gradle ./gradle/gradle-4.1/bin/gradle。抱歉标记,这是评论。因此,您可以将其添加到您的 PATH 变量中,但您需要保持安装该版本。
  • 是的,我找到了一个,添加到路径中,它就像一个魅力,谢谢。 > 导出 PATH=$PATH:/Users/MyUser/.gradle/wrapper/dists/gradle-4.1-all/xxx/gradle-4.1/bin
  • 别忘了重启你的电脑(windows)
【解决方案3】:

只要在linux上安装gradle,就算安装了Android Studio,

sudo apt install gradle

【讨论】:

    【解决方案4】:

    Windows 用户

    从答案Gradle Download中的链接下载gradle binary

    将 zip 文件解压到 'C:\Gradle' 或其他地方

    从开始菜单 > 搜索打开编辑环境变量对话框

    点击系统变量下的“新建”并添加如下

    变量名GRADLE_HOME变量值C:\Gradle\gradle-4.0.1

    然后从系统变量列表中选择PATH变量

    将 gradle 路径附加到像这样的变量值 C:\Gradle\gradle-4.0.1\bin

    然后按win键+R输入cmd然后在命令终端输入>gradle -v

    如果设置正确,您将看到 gradle 安装详细信息

    【讨论】:

    【解决方案5】:

    我已经安装了 Android Studio,只需在我的 MacOSX Mojave 上将 gradle PATH 添加到 ~/.bash_profile 即可。 此外,如果升级了 gradle,则路径可能需要再次更新。

    示例 .bash_profile :

    export ANDROID_SDK_ROOT="~/Library/Android/sdk"
    export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
    export JAVA_HOME=$(/usr/libexec/java_home)
    export GRADLE_PATH="~/.gradle/wrapper/dists/gradle-4.10.1-all/455itskqi2qtf0v2sja68alqd/gradle-4.10.1/bin"
    export ANDROID_STUDIO="/Applications/Android Studio.app/Contents/MacOS"
    export PATH="$PATH:$GRADLE_PATH:$ANDROID_STUDIO"
    

    编辑您的 .bash_profile 后,运行下面的命令再次读取它。

    source ~/.bash_profile
    

    【讨论】:

    • 我能够使用这种方法找到我自己的 gradle 路径并插入它。谢谢。
    【解决方案6】:

    对于 Windows,您可以尝试以下解决方案

    复制您的gradle-->bin 路径并将其添加到system environment variable path

    在我的例子中,gradle 路径是

    C:\Users\username\.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9\gradle-3.3\bin
    

    这个解决方案对我有用。

    【讨论】:

    • 谢谢 - 在我看来,这似乎是在您的计算机上安装另一个版本的 Gradle 更好的解决方案。
    • 添加到路径后不要忘记启动一个新的CMD会话
    • 我想这很明显,但是如果您在 Android Studio 中升级 Gradle,那么您将不得不重新添加路径。
    【解决方案7】:

    在 Ubuntu 中,安装最新版本的 gradle 为我解决了这个问题。

    尝试这些步骤来安装最新版本,

    sudo add-apt-repository ppa:cwchien/gradle
    
    sudo apt-get update
    
    sudo apt-get install gradle
    

    然后使用构建,

    cordova build androidionic cordova build android

    注意:如果您从 ubuntu repo 安装 gradle,它将安装旧版本 1.4 并且无济于事,因此如果您没有添加 repo,大多数时候单独使用 sudo apt-get install gradle 将无济于事ppa:cwchien/gradle早点

    【讨论】:

      【解决方案8】:

      cordova 6.4.0 和 android 6.2.1 有问题.so,请尝试以下兼容版本

      cordova 版本必须是 6.4.0

      sudo npm install -g cordova@6.4.0

      在你的项目中安装安卓

      sudo cordova 平台添加android@6.1.2

       or
      

      sudo 离子平台添加android@6.1.2

      【讨论】:

      • 你真的不应该用 sudo 运行 npm!
      • 如果您的系统要求权限,那么您需要使用 sudo
      • 如果设置正确,则不需要权限。您下载可以自动执行的不受信任的代码。这不应该通过提升的权限来完成!见docs.npmjs.com/getting-started/fixing-npm-permissions
      • 只需在第一个命令之前粘贴此行 sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share} 并删除 sudo
      【解决方案9】:
      brew install gradle
      

      简而言之,这将节省时间 :) Ionic 团队请解决此问题

      【讨论】:

        【解决方案10】:

        在 Ubuntu 18.04 上,我安装了 gradle:

        sudo add-apt-repository ppa:cwchien/gradle
        sudo apt-get update
        sudo apt-get install gradle
        

        准备好了。

        【讨论】:

        • 你真的需要 Ubuntu 18.04 上的第一行吗?
        • 你好乔,好问题,在 Ubuntu 存储库中版本是 3.4.1,但在存储库 ppa:cwchien/gradle 中版本是 5.0。不是真的需要使用第一行,但安装最后一个版本很重要。
        【解决方案11】:

        如果您不想显式安装 gradle 来解决这个问题,您可以按照下面提到的解决方法来克服这个问题:

        1. 在platforms\android\cordova\lib文件夹下寻找check_reqs.js文件
        2. get_gradle_wrapper函数中编辑androidStudioPath变量空值检查的else部分如下:

        现有代码:

        else { //OK, let's try to check for Gradle! return forgivingWhichSync('gradle'); }

        修改后的代码:

        else { //OK, let's try to check for Gradle! var sdkDir = process.env['ANDROID_HOME']; return path.join(sdkDir, 'tools', 'templates', 'gradle', 'wrapper', 'gradlew'); }

        注意:每次移除并重新添加 android 平台时都需要进行此更改

        更新: 上述解决方法在 Cordova Android 版本 6.3.0 之前都可以正常工作。对于 Cordova Android 6.4.0 及更高版本,Gradle 需要作为独立依赖项安装。请查找Cordova Android 6.4.0 release notes 了解更多信息。

        【讨论】:

        • 有人可以告诉我为什么这个答案被否决了吗?
        • 不解决问题,安装gradle并设置路径
        • @rashidnk 已经在我的科尔多瓦 CLI 中尝试过,并且在此调整后它可以工作。你能解释一下你尝试了什么,什么失败了吗?
        • 好的,但是我不赞成,我尝试了你的解决方案,但是在安装 gradle 并设置路径变量之后它工作了
        • @rashidnk 看看答案在哪里接受 - stackoverflow.com/questions/43356833/…
        【解决方案12】:

        对于 Windows 用户:

        Set-ExecutionPolicy RemoteSigned -scope CurrentUser
        iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
        scoop install gradle
        

        【讨论】:

          【解决方案13】:

          我使用的是 Microsoft Windows:

          我在将Android Studio 从 2.3.3 升级到 3.0 后遇到了这个错误。我通过在 PATH 环境变量中更改 gradle 的路径来解决它,现在 Android Studio 3.0 是“gradle-4.1”(以前是 "gradle -3.2" 适用于 Android Studio 2.3.3)

          【讨论】:

            【解决方案14】:

            只需通过命令行安装 Gradle 如果您使用的是 Mac,请尝试

            brew install gradle
            

            【讨论】:

              【解决方案15】:

              我将 Android 文件夹路径移动到另一个路径并出现此错误。

              我在下面解决了这个问题。

              我在系统变量中改为Gradle路径。但不是用户变量中的路径。您必须更改为系统变量中的路径

              Screenshot this

              Alternative Screenshot this

              【讨论】:

              • 感谢您附上截图。这对我有很大帮助。
              【解决方案16】:

              我想在这次谈话中加两分钱。如果您是 Windows 用户,您想利用 Chocolatey

              根据https://community.chocolatey.org/packages/gradle,您需要运行 在您的控制台中(假设您已经安装了 Chocolatey)。

              choco install gradle
              

              如果您尚未安装 Chocolatey,请按照 https://chocolatey.org/install 的说明进行操作

              【讨论】:

                【解决方案17】:

                我解决了这个问题

                从此站点https://gradle.org/install下载gradle.zip。并按照网站上的说明进行操作。

                然后打开另一个终端cmd,执行命令:

                Cordova build android --prod --release
                End
                

                【讨论】:

                  【解决方案18】:

                  首先卸载 ionic 和 cordova,然后设置变量环境 JAVA_HOMEANDROID_HOMEPATH 然后重新安装 ionic cordova 并添加平台,如下所示:

                  $ sudo npm install -g ionic cordova
                  
                  $ ionic platform add android
                  

                  离子将正确设置 gradle 包。

                  【讨论】:

                  • 我的编辑被拒绝了...所以我作为评论发表:npm 关键字在您的代码第一行中的sudo 之后丢失。
                  【解决方案19】:

                  在 Arch Linux/Manjaro 中: sudo pacman -S gradle

                  【讨论】:

                    【解决方案20】:

                    只需安装 android studio 并选择您的 sdk 文件夹作为 android studio 的 sdk 默认文件夹,然后 android studio 修复所有损坏区域并下载所需文件。

                    【讨论】:

                      【解决方案21】:

                      https://gradle.org/install 下载最新的 gradle 并将 gradle 路径设置为 PATH 变量中的 bin 并在您正在工作的目录中导出路径

                      示例:导出 PATH=/home/abc/android-sdk-linux/tools:/home/abc/android-sdk-linux/platform-tools:/home/abc/android-sdk-linux/tools:/ home/abc/android-sdk-linux/platform-tools:/home/abc/Downloads/gradle-4.4.1/bin

                      我花了一整天的时间解决这个问题,最终这个解决方案对我有用,

                      【讨论】:

                        【解决方案22】:

                        这在 linux 上对我有用

                        sdk install gradle 4.9
                        

                        从这里安装 sdk https://sdkman.io/

                        【讨论】:

                          【解决方案23】:

                          如果您在 Windows 上并且您的项目路径中有括号,您也会收到此错误。例如。 “cordova(某物)”。

                          (至少在this issue 被修复之前。)

                          【讨论】:

                            【解决方案24】:

                            如果您的 gradle 之前工作正常并且出现这种情况(可能在您升级或重新安装 ionic 或 cordova 之后 - 就像我的情况一样),您可能希望保持环境变量不变,并检查那里列出的文件夹是否实际存在。

                            如果没有,我必须重新创建丢失的旧文件夹并将 gradle 文件复制到其中,而不是如上所述重新安装 gradle 并更改环境变量的值。

                            似乎 gradle 位置的值保存在 Android Studio 中的某个位置,更新系统变量中的 PATH 不会影响 Android Studio 在触发更改后检查同一位置。

                            【讨论】:

                              【解决方案25】:

                              @Ghandi:有人可以告诉我为什么这个答案被否决吗? 是的为什么?它终于解决了这个问题...

                              在我看来,当 gradle 或 sdk 或 android studio 安装在与标准目录不同的目录中时,会有一个错误。 我有 S:\android\Android Studio 和 S:\android\sdk。

                              Gandi 的解决方案又在某个地方安装了 gradle,但我真的很生气:再多一两个“gradle”就不会再伤害我了

                              【讨论】:

                              • 请不要添加 cmets 作为答案。在网站上投入一些时间,您将获得足够的 privileges 来支持您喜欢的答案,或者在寻求任何问题的澄清时添加实际的 cmets。
                              猜你喜欢
                              • 2018-05-20
                              • 2021-06-20
                              • 2018-01-01
                              • 1970-01-01
                              • 2019-05-14
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多