我知道有很多类似的问题,但我没有找到一个解决我的问题在任何一个。另外,我会提供我的具体情况。

我在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平台- tools 25.0.3 Android SDK Tools 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错误?


当前回答

我刚刚也遇到了同样的问题。

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

不过,似乎有一个变通办法,我刚刚在我的机器上运行了一下。以下是我所做的:

从Android下载下载tools_r25.2.3-windows.zip。 在桌面上提取zip文件 将C:\Users\username\AppData\Local\Android\sdk\tools替换为已提取 子文件夹工具/ 项目文件夹: $ cordova平台删除android $ cordova平台添加android

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

其他回答

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

在linux(我是Ubuntu)上只需要安装gradle:

安装gradle

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

安装cordova 5.0帮助我:

npm install -g cordova@5.0

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

我在/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,但有另一个错误(gradlewis -command-failed-with-exit-code-

我检查是否在android工作室的存储库是活跃的,它不是活跃的,我尝试激活它,当我再次尝试它(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

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

谢谢

这为我解决了问题:

cordova platform update android@6.1.2