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

Posted

技术标签:

【中文标题】错误:在 Android SDK 中找不到 gradle 包装器。可能需要更新您的 Android SDK - Android【英文标题】:Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK - Android 【发布时间】:2017-07-25 15:06:46 【问题描述】:

我知道有很多与此类似的问题,但我无法在其中任何一个问题中找到解决方案。此外,我将提供我的具体案例的详细信息。

我在 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 平台-工具 25.0.3 Android SDK 工具 25.3.1 从 2.1 (Eclair) 到 7.1.1 (Nougat) 的所有 Android 版本

经过大量研究,我将所有与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 错误?

【问题讨论】:

【参考方案1】:

编辑 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:

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

编辑: 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,因为大多数问题已经在master分支上修复了。

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

【讨论】:

该版本现已在 npm 存储库中发布,尽管它似乎还没有被自动使用。不过cordova platform add android@6.2.0 有效。 @chrjs cordova platform add android@6.2.3现在可以安全使用了,你不需要添加github版本,它可能会不稳定,最好使用6.2.3作为最新发布的版本 我使用的是 Cordova 7.0.1,但出现错误:Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK. 有什么建议吗? @EthanKeller 但是你之前有没有添加过安卓平台?如果是这种情况,请删除它cordova platform rm android 重新添加它cordova platform add android 为什么不只是android@latest【参考方案2】:

我刚遇到同样的问题。

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

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

从Android Downloads下载tools_r25.2.3-windows.zip。

在桌面上提取的 zip

将 C:\Users\username\AppData\Local\Android\sdk\tools 替换为提取的 子文件夹工具/

在项目文件夹中:

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

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

【讨论】:

THX,我被困在了同样的现象中,现在通过你的补救措施恢复了我的环境。我认为这是谷歌的错,所以科尔多瓦开发者应该等待下一个更正的更新。 遇到了完全相同的问题。降级的“Android SDK 工具”25.2.3 解决了这个问题。我们可能应该等待 Google/Android 团队的更新。 只替换工具文件夹对我有用。不必删除和添加平台。 非常有用,对于Mac你也可以这样做,除了下载Windows的工具,你在这个地址从Mac下载:dl.google.com/android/repository/tools_r25.2.3-macosx.zip 这里可以直接访问原文件:dl.google.com/android/repository/…【参考方案3】:

(基本上@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

【讨论】:

为了简单起见,第一行可以是cd $ANDROID_HOME @toxaq 可能是,但我的机器上没有定义 $ANDROID_HOME 非常感谢。你的命令 + 使用 android@6.1.2 在 mac 上就像一个魅力! 完美答案!似乎是最简单的解决方案!谢谢:)【参考方案4】:
    如果您的系统中安装了 android studio,则从 C:\Program Files\Android\Android Studio\plugins\android\lib\templates 复制模板文件夹 粘贴到文件夹C:\Users\&lt;user-name&gt;\AppData\Local\Android\sdk\tools 运行命令:ionic build android

将下载所有必要的 jar 文件并生成应用程序的 apk 文件。

注意:设置环境变量为 C:\Users\&lt;user-name&gt;\AppData\Local\Android\sdk\tools。 还将用户名设置为您当前的用户名。

【讨论】:

简单易行的解决方案! 对于拥有 Android Studio 的用户来说,这是一个简单而经济的解决方案。 它实际上对我有用..当其他解决方案没有时。太糟糕了,它似乎主要依赖于 cordova/ionic/sdk/android studio 版本 截至 2018 年并使用 2 个不同版本的 Cordova,我可以保证此解决方案有效且不需要额外下载。【参考方案5】:

对于 Linux,还有更好的解决方案。

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

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

【讨论】:

是的,R J 回答了该问题的 Windows 解决方法,而您的答案是 Linux 解决方案。对于不知道如何解决 Windows 的 C:\Users\username\AppData\Local\Android\sdk\tools 到 Ubuntu 的 /home/user/Android/Sdk 的人很有用 @rbenvenuto 答案基本相同。下载工具,解压缩 zip 文件夹并将提取的内容保存到您的 idk 的工具文件夹中。理解起来有多难?我使用的是 Mac 并将保存到 ~/Library/Android/sdk/tools 需要我偷别人的赞成票来用不同的词解释同一件事吗? @Anon 是的,不能否认他的回答几乎是用不同的词进行的相同解释。但是对于像我这样苦苦挣扎的初学者来说,我可以看到它的一些价值哈哈 developer.android.com 中不再提供以前的版本【参考方案6】:

对于仍然遇到此问题的任何人,这对我有用:

    cordova platform update android@latest

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

【讨论】:

+1 这适用于@ 2017 年 8 月,并将您更新为cordova-android@6.2.3。较旧的答案可能会或可能不会起作用或不再正确。这种情况不断变化,直接由 Android SDK 25.3.1 放弃对 android 二进制文件的支持造成,如下所述:cordova.apache.org/announcements/2017/04/05/… 截至 2018 年 3 月仍在工作。我不经常创建新的 cordova 项目,这是自我之前发表评论以来的第一次。它有相同的could not find gradle wrapper 错误。我不得不再次在 SO 上查找解决方案。这是针对每个项目的修复,必须应用于您创建的每个新的 cordova 项目。如果可以的话,我会投票两次,这是这个答案第二次救了我。【参考方案7】:

无需降级 Android 工具。 在 Windows 上,Gradle 移动自:

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

到:

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

所以你只需要调整你的路径,让它指向正确的文件夹。

【讨论】:

我做了相反的事情,将包装器移动到我的 AppData 并且它工作正常!谢谢^_^ A new version of Cordova has been published recenly (five days ago) to solve this problem 将wrapper文件夹的内容从这个路径C:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle\wrapper复制到C:/Android/Sdk/tools/模板/gradle/包装器【参考方案8】:

如果您在ionic run android --device 时遇到此错误

## codova - android update 
npm install -g cordova
cordova platform update android

【讨论】:

【参考方案9】:

只是从典型的 Android Studio 安装中复制了所有内容。 从: D:\sw\dev\android\studio\plugins\android\lib\templates

(整个模板目录)

收件人:

D:\sw\dev\android\sdk\tools

经过测试 离子构建android

【讨论】:

这就是我的解决方案。在此解决方案之后,您可能会收到许可证消息。见***.com/questions/40383323/…【参考方案10】:

当您的 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(还没有)。

【讨论】:

【参考方案11】:

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

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

【讨论】:

没有测试符号链接解决方案,但在我的系统上/opt/android-studio/plugins/android/lib/templates/gradle/wrapper/gradlew 没有执行权限。确保在尝试之前对其进行 chmod。 sdk/tools 下没有 template/ 文件夹。【参考方案12】:

在 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

【讨论】:

以上解决方案都不适合我。我正在使用最新版本的科尔多瓦 7.0.1。从 ubuntu repo 安装 gradle 解决了这个问题。它的 2017 年仍然是 cordova 不知道使用 Android Studio 的内置 gradle【参考方案13】:

这解决了我的问题。

我刚下载 https://dl.google.com/android/repository/tools_r25.2.5-macosx.zip214 并覆盖 ~/Library/Android/sdk/tools 中的工具文件夹

【讨论】:

【参考方案14】:

就在最近,我也遇到了类似的问题,我做了这个之后,它的工作原理:

我在/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-

    我检查了 android studio 中的存储库是否处于活动状态,但它不处于活动状态,我尝试激活它,当我再次尝试(Cordova 构建 Android)时,它会下载一些其他文件,也许是从存储库?然后当我删除路径时,它仍然有效。 (还要感谢 Marcin Orlowski 示例,这样我才能更好地了解导出路径)。

我使用:

Linux Mint Serena 节点:v6.10.3 npm : 3.10.10 科尔多瓦:7.0.0 Android Studio : 2.3.1 Android SDK 平台工具:25.0.5 Android SDK 工具:26.0.2

希望它可以帮助任何可能遇到和我一样的问题并且也需要它的人。

谢谢

【讨论】:

【参考方案15】:

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

https://gradle.org/install

【讨论】:

【参考方案16】:

截至今天,没有一个解决方案对我有用。我的情况是我更新了我的 Android 工作室。用最新的工具文件夹替换工具文件夹的最流行的方法对我不起作用。在某些情况下不需要 Infact。

npm update -g cordova 帮了我大忙。

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

ionic platform remove android

ionic platform add android

这在 Ionic 中适用于我。我确信cordova platform remove/add android 会做同样的事情。虽然没有测试。

再次工作!

【讨论】:

【参考方案17】:

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

【讨论】:

【参考方案18】:

这为我解决了:

cordova platform update android@6.1.2

【讨论】:

【参考方案19】:

运行:

cordova platform update android@6.1.2

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

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

D:\Program Files\Android

C:\Program Files\Android

【讨论】:

【参考方案20】:

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

    去https://gradle.org/install下载二进制包 解压,记住路径,比如My one at:E:\Gradle 设置环境变量,如在 Windows 上添加 E:\Gradle\bin

就是这样。

【讨论】:

【参考方案21】:

遇到同样的问题后,只需要在config.xml中重命名包名,属性id里面不带“-”的名字...

com.web-projet.appname

改名为:

com.webprojet.appname

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

如果有帮助的话。

【讨论】:

【参考方案22】:

安装cordova 5.0版对我有帮助:

npm install -g cordova@5.0

【讨论】:

【参考方案23】:

我使用的是 Ubuntu 16.04,对我来说,它只需要使用两个命令即可:-

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

【讨论】:

【参考方案24】:

简单易用的 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 现在又可以工作了!!!

【讨论】:

你解释一下吗?为什么会发生?

以上是关于错误:在 Android SDK 中找不到 gradle 包装器。可能需要更新您的 Android SDK - Android的主要内容,如果未能解决你的问题,请参考以下文章

原始错误:在 ["/usr/local/share/android-sdk/platform-tools/aapt"] Appium - Eclipse 中找不到“aapt”

在 SDK 管理器中找不到 Android 支持存储库

在 Android Studio 路径中找不到 SDK 文件夹,并且 SDK 管理器未打开

在本机反应中找不到 sdk 位置

在颤振医生中找不到Android SDK文件adb(命令提示符)

致命错误:在 sdk Paypal 中找不到类“Paypal\Api\Payer”