我知道有很多类似的问题,但我无法找到解决问题的方法。此外,我还会提供具体案例的详细信息。
我在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相关的环境变量放在文件/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错误?
答案 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,我刚刚在我的机器上工作。这就是我的所作所为:
在项目文件夹中:
$ 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)
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
。
同时将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.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
(仍然没有)。
答案 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 -
我用:
希望它可以帮助任何可能像我一样遇到同样问题的人,也需要这个。
由于
答案 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。尝试手动安装它。 按照此链接中的说明进行操作
答案 17 :(得分:1)
这解决了我:
cordova platform update android@6.1.2
答案 18 :(得分:0)
在cordova升级到7.0.x后,如上所述更改了gradle路径。要在官方修复发布之前使其正常工作,只需手动安装gradle并将其设置在您的环境中。
那就是它。
答案 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现在再次工作!!!