错误:无法在Android SDK中找到gradle包装器。可能需要更新您的Android SDK - Android

时间:2017-03-05 20:56:12

标签: cordova ionic-framework android-gradle

我知道有很多类似的问题,但我无法找到解决问题的方法。此外,我还会提供具体案例的详细信息。

我在Ubuntu 16.04 LTS中编写了一个Ionic项目,现在我必须构建它才能发布。所以我运行命令:

cordova build --release android

我发现了以下错误:

Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK.
Looked here: /home/user/Android/Sdk/tools/templates/gradle/wrapper
  • 我没有此templates/gradle/wrapper目录。
  • 我的Android Studio是2.3,现在是最新版本
  • Android SDK Platform-Tools 25.0.3
  • Android SDK工具25.3.1
  • 所有Android版本从2.1(Eclair)到7.1.1(Nougat)

经过广泛研究,我将所有与Android Studio相关的环境变量放在文件/etc/environment中。所以现在它看起来像这样:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/game:/home/<user>/Android/Sdk:/home/<user>/Android/Sdk/tools:/home/<user>/Android/Sdk/platform-tools"

ANDROID_HOME=/home/<user>/Android/Sdk
export ANDROID_HOME

JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JAVA_HOME

GRADLE_HOME=/opt/android-studio/gradle/gradle-3.2
export GRADLE_HOME

现在,为了测试环境变量,我运行以下命令:

source /etc/environment
echo $PATH
echo $ANDROID_HOME
echo $JAVA_HOME
echo $GRADLE_HOME

所有路径变量都正确显示。

所以,看起来环境变量就像他们应该根据各种类似的问题和我搜索过的教程一样。有谁知道我做错了什么?为什么我仍然会收到Gradle Wrapper错误?

24 个答案:

答案 0 :(得分:249)

编辑3:

Cordova Android 6.2.2已经发布,它与SDK工具26.0.x和25.3.1完全兼容。使用此版本:

cordova platform update android@6.2.2

cordova platform rm android
cordova platform add android@6.2.2

编辑2:

还有另一个Android SDK工具版本(26.0.x)与cordova-android 6.2.1不完全兼容。

编辑: Cordova Android 6.2.1已经发布,现在与最新的Android SDK兼容。

您可以使用更新当前不兼容的Android平台 cordova platform update android@6.2.1

或者您可以删除现有平台并添加新平台(将删除您在yourProject/platforms/android/文件夹中所做的任何手动更改)

cordova platform rm android cordova platform add android@6.2.1

您必须指定版本,因为当前CLI默认安装6.1.x.

旧答案:

可悲的是Android SDK工具25.3.1打破了cordova-android 6.1.x

对于那些不想降级SDK工具的人,可以从github url安装cordova-android,因为大部分问题已在主分支上修复。

cordova platform add https://github.com/apache/cordova-android

答案 1 :(得分:239)

我刚遇到同样的问题。

关于如何使用您和我错过的所有SDK工具安装(或升级)Android Studio的说明中可能存在一个障碍,或者可能是由不遵循相同文件的新版Studio创建的错误约定作为旧版本。我倾向于后者,因为关于这个主题的许多the SO posts似乎指向带有名为android-sdk的文件夹的ANDROID_PATH,它没有出现在最新版本(2.3.0.8)中。

似乎有a workaround though,我刚刚在我的机器上工作。这就是我的所作所为:

  • Android Downloads下载工具_r25.2.3-windows.zip。
  • 桌面上提取的拉链
  • 用提取替换了C:\ Users \ username \ AppData \ Local \ Android \ sdk \ tools 子文件夹工具/
  • 在项目文件夹中:

    $ cordova平台删除android
    $ cordova平台添加android

您可能还需要强制删除android中的node_modules。 希望这会有所帮助。

答案 2 :(得分:54)

(基本上是@ user3464070已经说过)

对于Mac:

cd ~/Library/Android/sdk
# download latest tools
curl -O https://dl.google.com/android/repository/tools_r25.2.3-macosx.zip
# overwrite existing tools folder without prompting
unzip -o tools_r25.2.3-macosx.zip
# clean up
rm tools_r25.2.3-macosx.zip

答案 3 :(得分:38)

  1. 如果您在系统中安装了android studio,请从C:\Program Files\Android\Android Studio\plugins\android\lib\templates
  2. 复制templates文件夹
  3. 将其粘贴到文件夹C:\Users\<user-name>\AppData\Local\Android\sdk\tools
  4. 运行命令:ionic build android
  5. 将下载所有必需的jar文件,并生成应用程序的apk文件。

    注意:将环境变量设置为  C:\Users\<user-name>\AppData\Local\Android\sdk\tools。  同时将user-name设置为您当前的用户名。

答案 4 :(得分:26)

对于Linux,甚至可以提供更好的解决方案。

导航至 https://developer.android.com/studio/index.html#downloads

并下载命令行工具zip文件(页面底部)for linux。将它们解压缩到您的.... / Android / Sdk /文件夹,以便覆盖/扩展您的工具文件夹。现在一切正常。

答案 5 :(得分:21)

对于仍有这个问题的人来说,这对我有用:

    cordova platform update android@latest

然后构建它将自动下载最新的gradle版本并且应该可以工作

答案 6 :(得分:14)

无需降级Android工具。 在Windows上,Gradle从:

移动
C:\Users\you_username\AppData\Local\Android\sdk\tools

为:

C:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle\wrapper

因此,您只需调整路径,使其指向正确的文件夹。

答案 7 :(得分:8)

如果您ionic run android --device

时出现此错误
## codova - android update 
npm install -g cordova
cordova platform update android

答案 8 :(得分:7)

刚刚从典型的Android Studio安装中复制了所有内容。 从: d:\ SW \ dev的\机器人\工作室\插件\机器人\ lib中\模板

(整个模板目录)

要:

d:\ SW \ dev的\机器人\ SDK \工具

经过测试 离子生成android

答案 9 :(得分:5)

在linux上(在我的情况下是Ubuntu)只需安装gradle:

sudo apt-get install gradle

编辑:对于较新的版本,似乎ubuntu repo只有gradle 2.10:https://www.vultr.com/docs/how-to-install-gradle-on-ubuntu-16-10

答案 10 :(得分:5)

对于Linux,只需创建一个符号链接,如下所示:

ln -s /android/android-studio/plugins/android/lib/templates /android/sdk/tools/templates

答案 11 :(得分:4)

如果您的SDK工具中没有gradle包装器,则会出现此问题。

与之前的回复一样,您可以更新到上一个cordova-android版本(可行),但如果您想继续使用cordova-cli@6.4.0cordova-android@6.0.0,只需复制该文件夹即可android studio ex。;

cd /Applications/Android\ Studio.app/Contents/plugins/android/lib/
cp -r templates/ $ANDROID_HOME/tools/templates
chmod +x $ANDROID_HOME/tools/templates/gradle/wrapper/gradlew

在我的情况下,我使用的是cordova-plugin-fcm,并且使用旧版本的cordova-android进行了测试,因此我无法使用cordova-android@2.x(仍然没有)。

答案 12 :(得分:3)

就在最近,我也遇到了类似的问题,在我这样做之后,它起作用了:

我在/etc/profile

中编辑了该文件
sudo nano /etc/profile

export JAVA_HOME=/home/abdul/java/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin

export ANDROID_HOME=/home/abdul/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools

export GRADLE_ANDROID_HOME=/home/abdul/android-studio/gradle
export PATH=$PATH:$GRADLE_ANDROID_HOME/gradle-3.2/bin
export PATH=$PATH:$GRADLE_ANDROID_HOME/m2repository

其他信息(以防万一):

m2repository部分不太确定,在第一次尝试时它通过了grandle但是还有另一个错误(gradlew-command-failed-with-exit-code -

  1. 我检查在android studio中存储库是否处于活动状态,并且它没有激活,我尝试激活它,当我再次尝试它(Cordova构建Android)时,它下载了一些其他文件,可能来自存储库?然后,当我删除路径时,它仍然有效。 (也感谢Marcin Orlowski的样本,这样我就可以更好地了解出口路径了。)
  2. 我用:

    • Linux Mint Serena
    • node:v6.10.3
    • npm:3.10.10
    • Cordova:7.0.0
    • Android Studio:2.3.1
    • Android SDK平台工具:25.0.5
    • Android SDK工具:26.0.2

    希望它可以帮助任何可能像我一样遇到同样问题的人,也需要这个。

    由于

答案 13 :(得分:3)

这解决了我的问题。

我刚刚下载了 https://dl.google.com/android/repository/tools_r25.2.5-macosx.zip214并覆盖〜/ Library / Android / sdk / tools

中的tools文件夹

答案 14 :(得分:2)

截至今天,这些解决方案都没有对我有用。我的情况是我的Android工作室更新了。用最新的工具文件夹替换工具文件夹最流行的东西对我来说不起作用。在某些情况下不需要事实。

npm update -g cordova为我做了诀窍。

然后我删除了平台并再次添加。

ionic platform remove android

ionic platform add android

这对Ionic来说很有用。我相信cordova platform remove/add android会做同样的事情。虽然没经过测试。

再次工作!

答案 15 :(得分:2)

在以不同的顺序尝试了两次后,我重新安装了所有内容,在执行cordova platform add android之前,我前往templates/gradle并运行了gradlew.bat。完成后,我能够毫无问题地添加android平台。

答案 16 :(得分:2)

无需更新sdk。尝试手动安装它。 按照此链接中的说明进行操作

https://gradle.org/install

答案 17 :(得分:1)

这解决了我:

cordova platform update android@6.1.2

答案 18 :(得分:0)

在cordova升级到7.0.x后,如上所述更改了gradle路径。要在官方修复发布之前使其正常工作,只需手动安装gradle并将其设置在您的环境中。

  1. 转发https://gradle.org/install下载二进制包
  2. 解压缩它,记住路径,例如,我的一个在:E:\ Gradle
  3. 设置环境变量,例如在Windows上添加E:\ Gradle \ bin
  4. 那就是它。

答案 19 :(得分:0)

遇到同样的问题后,只需在config.xml中重命名包名,使用不带&#34的名称的属性id; - &#34;内部...

com.web-projet.appname

重命名为:

com.webprojet.appname

一切都是正确的......

如果有帮助。

答案 20 :(得分:0)

安装cordova 5.0版可以帮助我:

npm install -g cordova@5.0

答案 21 :(得分:0)

执行命令

ToString()

并确保Android Studio和Android Studio环境变量引用相同的位置。

我通过从以下位置复制Android Studio来解决此问题:

cordova platform update android@6.1.2

D:\Program Files\Android

答案 22 :(得分:0)

我正在使用Ubuntu 16.04,对我来说,只需使用两个命令即可工作:-

ionic cordova platform rm android
ionic cordova platform add android@6.3.0

答案 23 :(得分:-1)

简单易用的MAC解决方案

我的问题是

cordova build android
ANDROID_HOME=/Users/jerilkuruvila/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home
Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK.
Looked here: /Users/jerilkuruvila/Library/Android/sdk/tools/templates/gradle/wrapper

<强>解决方案

jerilkuruvila@Jerils-ENIAC tools $ cd templates
-bash: cd: mkdir: No such file or directory
jerilkuruvila@Jerils-ENIAC tools $ mkdir templates
jerilkuruvila@Jerils-ENIAC tools $ cp -rf gradle templates/
jerilkuruvila@Jerils-ENIAC tools $ chmod a+x templates/

cordova build android现在再次工作!!!