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

rbe*_*uto 195 cordova android-gradle-plugin ionic-framework

我知道有很多类似的问题,但我找不到任何解决方案.此外,我会提供具体案例的详细信息.

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

cordova build --release android
Run Code Online (Sandbox Code Playgroud)

我显示以下错误:

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
Run Code Online (Sandbox Code Playgroud)
  • 我没有这个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
Run Code Online (Sandbox Code Playgroud)

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

source /etc/environment
echo $PATH
echo $ANDROID_HOME
echo $JAVA_HOME
echo $GRADLE_HOME
Run Code Online (Sandbox Code Playgroud)

并且正确显示所有路径变量.

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

jce*_*ile 253

编辑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
Run Code Online (Sandbox Code Playgroud)

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

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

  • 该版本现在已经在npm存储库上了,尽管它似乎还没有自动使用.`cordova平台添加android @ 6.2.0`可行. (7认同)
  • @chrjs`cordova平台添加android @ 6.2.3`现在可以安全使用,你不需要添加github版本它可能不稳定,更好地使用6.2.3,因为最新发布的一个 (3认同)

R J*_*R J 241

我刚刚遇到了同样的问题.

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

似乎有一个解决方法,我只需要在我的机器上工作.这是我做的:

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

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

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

  • 非常有用,对于Mac,你可以做同样的事情,除了下载Windows工具,你从Mac上下载这个地址:https://dl.google.com/android/repository/tools_r25.2.3-macosx.zip (15认同)
  • 原始文件可以在此处直接访问:https://dl.google.com/android/repository/tools_r25.2.3-windows.zip?hl = id (14认同)
  • 仅替换tools文件夹对我来说是个窍门.没有删除和添加平台. (3认同)

bas*_*ode 55

(基本上@ 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
Run Code Online (Sandbox Code Playgroud)

  • 多谢.你的命令+使用android@6.1.2像mac上的魅力一样工作! (2认同)

小智 42

  1. 如果您在系统中安装了android studio,则从中复制templates文件夹 C:\Program Files\Android\Android Studio\plugins\android\lib\templates
  2. 将其粘贴到文件夹中 C:\Users\<user-name>\AppData\Local\Android\sdk\tools
  3. 运行命令: ionic build android

将下载所有必需的jar文件,并生成应用程序的apk文件.

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


小智 26

对于Linux,甚至有更好的解决方案.

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

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

  • @Anon是的,不能否认他的回答几乎是用不同的词语解释.但我可以看到像我这样挣扎的初学者的一些价值 (4认同)

Man*_*ans 21

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

    cordova platform update android@latest
Run Code Online (Sandbox Code Playgroud)

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

  • +1这适用于2017年8月,并将您更新为`cordova-android @ 6.2.3`.较旧的答案可能会或可能不会起作用或更正.这种情况在不断变化,并直接由Android SDK中25.3.1下降引起的对于Android二进制数据支持,如下所述:https://cordova.apache.org/announcements/2017/04/05/android-release.html (2认同)

her*_*rve 14

没有必要降级Android工具.在Windows上,Gradle从:

C:\Users\you_username\AppData\Local\Android\sdk\tools
Run Code Online (Sandbox Code Playgroud)

至:

C:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle\wrapper
Run Code Online (Sandbox Code Playgroud)

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

  • 我做了相反的事情,将包装器移动到我的AppData,它工作正常!谢谢^ _ ^ (6认同)

xso*_*sor 9

如果你有这个错误 ionic run android --device

## codova - android update 
npm install -g cordova
cordova platform update android
Run Code Online (Sandbox Code Playgroud)


小智 7

刚从典型的Android Studio安装中复制了所有内容.来自:D:\ sw\dev\android\studio\plugins\android\lib\templates

(整个模板目录)

至:

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

用离子构建android测试


Bru*_*oli 6

当您没有将gradle包装器放入SDK工具时,就会出现此问题。

就像之前的回答一样,您可以更新到最新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
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我正在使用,cordova-plugin-fcm并且它已在旧版本的cordova-android中进行了测试,因此无法使用cordova-android@2.x(尚未使用)。


小智 5

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

ln -s /android/android-studio/plugins/android/lib/templates /android/sdk/tools/templates
Run Code Online (Sandbox Code Playgroud)


Maw*_*cel 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