错误:在 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\<user-name>\AppData\Local\Android\sdk\tools
运行命令:ionic build android
将下载所有必要的 jar 文件并生成应用程序的 apk 文件。
注意:设置环境变量为
C:\Users\<user-name>\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.0
和cordova-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”
在 Android Studio 路径中找不到 SDK 文件夹,并且 SDK 管理器未打开