离子构建Android |错误:未找到已安装的构建工具。请安装 Android 构建工具

Posted

技术标签:

【中文标题】离子构建Android |错误:未找到已安装的构建工具。请安装 Android 构建工具【英文标题】:ionic build Android | error: No installed build tools found. Please install the Android build tools 【发布时间】:2015-09-20 07:46:58 【问题描述】:

当我在 ionic 项目的根目录中运行 ionic build android 命令时,出现以下错误:

FAILURE:构建失败并出现异常。

其中:脚本“/home/javad/Desktop/javadApp/platforms/android/CordovaLib/cordova.gradle” 行:64

出了什么问题:评估根项目“android”时出现问题。

未找到已安装的构建工具。请安装 Android 构建工具 19.1.0 或更高版本。

尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。

javad@javad:~/Desktop/javadApp$ ionic build android
Running command: /home/javad/Desktop/javadApp/hooks/after_prepare/010_add_platform_class.js /home/javad/Desktop/javadApp
add to body class: platform-android
Running command: /home/javad/Desktop/javadApp/platforms/android/cordova/build 
ANDROID_HOME=/opt/android-sdk
JAVA_HOME=/usr/lib/jvm/default-java
Running: /home/javad/Desktop/javadApp/platforms/android/gradlew cdvBuildDebug -b /home/javad/Desktop/javadApp/platforms/android/build.gradle -Dorg.gradle.daemon=true

FAILURE: Build failed with an exception.

* Where:
Script '/home/javad/Desktop/javadApp/platforms/android/CordovaLib/cordova.gradle' line: 64

* What went wrong:
A problem occurred evaluating root project 'android'.
> No installed build tools found. Please install the Android build tools version 19.1.0 or higher.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 1.564 secs

/home/javad/Desktop/javadApp/platforms/android/cordova/node_modules/q/q.js:126
                    throw e;
                          ^
Error code 1 for command: /home/javad/Desktop/javadApp/platforms/android/gradlew with args: cdvBuildDebug,-b,/home/javad/Desktop/javadApp/platforms/android/build.gradle,-Dorg.gradle.daemon=true
ERROR building one of the platforms: Error: /home/javad/Desktop/javadApp/platforms/android/cordova/build: Command failed with exit code 8
You may not have the required environment or OS to build this project
Error: /home/javad/Desktop/javadApp/platforms/android/cordova/build: Command failed with exit code 8
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:134:23)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:743:16)
    at Process.ChildProcess._handle.onexit (child_process.js:810:5)

在 ~/.profile 我有:

导出 PATH=$PATH:/opt/android-sdk/tools

导出 PATH=$PATH:/opt/android-sdk/platform-tools

导出 PATH=$PATH:/opt/node/bin

导出 JAVA_HOME=/usr/lib/jvm/default-java

导出 ANDROID_HOME=/opt/android-sdk

$PATH 是:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/android- sdk/tools:/opt/android-sdk/platform-tools:/opt/node/bin

重要问题:

在文件中: /home/javad/Desktop/javadApp/platforms/android/CordovaLib/cordova.gradle | 第 38 行

String[] getAvailableBuildTools() 
    def buildToolsDir = new File(getAndroidSdkDir(), "build-tools")
    buildToolsDir.list()
        .findAll  it ==~ /[0-9.]+/ 
        .sort  a, b -> compareVersions(b, a) 

刚刚返回/opt/android-sdk/build-tools !!!

/opt/android-sdk/build-tools 文件夹中:

android-5.1 文件夹,提取自: https://dl.google.com/android/repository/build-tools_r22-linux.zip

【问题讨论】:

它为我工作检查***.com/questions/38660955/… 【参考方案1】:

我通过使用 sdkmanager 下载名为 platform-toolsbuid-tools 的 sdk 包来解决此问题。您可以使用 sdkmanager.exe,或者如果您使用的是 SDK CLI,请转到 ~\AppData\Local\Android\sdk\tools\bin 并运行以下命令:

sdkmanager "platform-tools" "platforms;android-26"

sdkmanager "build-tools;27.0.3"

或两者兼而有之

之后您应该可以运行ionic cordova run androidionic build android

注意:通过将~\AppData\Local\Android\sdk\tools~\AppData\Local\Android\sdk\tools\bin 添加到您的环境变量来全球化sdkmanager 命令。

【讨论】:

不要忘记以管理员身份运行 cmd 以避免错误。我遇到了警告:“无法读取或创建安装属性文件”错误 谢谢,这对我来说是构建过程中必不可少的一步。 在 bin 文件夹中打开终端:说 sdkmanager: command not found @LasLemieux 请检查您是否正确安装了 SDK CLI。如果你使用的是 windows,应该有一个名为 sdkmanage.exe 的文件。 这对我有用,但我必须添加 --sdk_root 选项以防止出现以下错误: Observed package id 'tools' in contrast location '/opt/cmdline-tools/tools' (Expected '/选择/工具')【参考方案2】:

对我来说,运行这三个命令可以解决我的 Mac 上的问题:

export ANDROID_HOME=~/Library/Android/sdk
export ANDROID_SDK_ROOT=~/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools

为了便于复制,这里是一行

export ANDROID_HOME=~/Library/Android/sdk && export PATH=$PATH:$ANDROID_HOME/tools && export PATH=$PATH:$ANDROID_HOME/platform-tools && export ANDROID_SDK_ROOT=~/Library/Android/sdk

永久添加

按照以下步骤操作:

    在文本编辑器中打开主目录中的 .bash_profile 文件(例如,/Users/your-user-name/.bash_profile)。 将export PATH="The above exports here" 添加到文件的最后一行,其中your-dir 是您要添加的目录。 保存.bash_profile.zshrc 文件。 重新启动您的终端。或者根据您的终端设置运行source ~/.bash_profilesource ~/.zshrc

Adding to bash process for different systems

【讨论】:

这对我每次都有帮助,但是一旦我关闭终端或重新启动 mac,我需要再次执行此操作 这对我有用。 @Forza 如果您将其添加到您的 ~/.bash_profile 中,它将每次都有效。 我错误地将那些 PATH 子目录附加到我的 ANDROID_HOME 变量中。一旦我清理了它,它就起作用了! 要在 mac 中永久安装,请将其粘贴到两个文件中:'nano ~/.zshrc' 和 'touch 。 bash_profile' 谢谢@manuman94 刚刚更新了我的答案,可以请你看看是否还好【参考方案3】:

您缺少 android SDK 工具。请尝试以下方法:

android list sdk --all
android update sdk -u -a -t <package no.>

&lt;package no.&gt;1,2,3,n

-u (--no-ui)  # Headless mode
-a (--all)    # Includes all packages (also obsolete ones)
-t (--filter) # Filter by package index

【讨论】:

它把我扔了Filter 19 not supported 2018 年更新:使用 -t android-27 用于版本 27 等 2021 年更新:The "android" command is deprecated.For manual SDK, AVD, and project management, please use Android Studio.For command-line tools, use tools/bin/sdkmanager and tools/bin/avdmanager【参考方案4】:

如错误所示“未找到已安装的构建工具” 这意味着

1:真的真的真的没有找到构建工具

2 : 要让他找到构建工具,您需要正确定义这些路径

UBUNTU(.bashrc) 和 MAC(.bash_profile) 的路径相同

export ANDROID_HOME=/Users/vijay/Software/android-sdk-macosx
export PATH=$PATH:/Users/vijay/Software/android-sdk-macosx/tools
export PATH=$PATH:/Users/vijay/Software/android-sdk-macosx/platform-tools

3 : IMPORTANT IMPORTANT 设置环境变量后,您需要重新加载环境变量。

//For ubuntu
$source .bashrc 

//For macos
$source .bash_profile

4 : 然后在终端签入

$printenv ANDROID_HOME
$printenv PATH

注意:如果你在 printenv 中没有找到你的更改,请重新启动电脑并重试 printenv PATH,printenv ANDROID_HOME。还有重新加载环境变量的命令。

4:然后打开终端并写入 HALF TEXT '$and' 并点击选项卡。在点击选项卡时,您应该会看到完整的“$android”名称。这会验证所有路径都正确

5 : 在终端写入 $android 并回车

【讨论】:

【参考方案5】:

请安装 Android 构建工具 19.1.0 或更高版本。

以下命令可以快速更新Ubuntu上的Android SDK并修复上述错误:

android list sdk --all
android update sdk -u -a -t 19
android update sdk -u -a -t 20

【讨论】:

过滤器 19 和过滤器 20 不受支持 这里也一样@Skizo-ozᴉʞS @Skizo-ozᴉʞS,请问您找到解决方法了吗?【参考方案6】:

我通过将 ANDROID_HOME 更改为 C:\Users\Gebru\AppData\Local\Android\Sdk 来自错误的上一个目录。

【讨论】:

这对我有用。我没有设置ANDROID_HOME,Cordova 认为它位于/usr/lib/android-sdk,这是不正确的 我也有,只是我在 /Sdk 之前停止了。这条线似乎有什么问题?【参考方案7】:

我知道这看起来不相关,尤其是考虑到错误消息,但我通过安装更新​​版本的 Android SDK 构建工具解决了这个问题。

【讨论】:

【参考方案8】:

在我的例子中,环境变量 ANDROID_HOME 指向了错误的(旧)目录。我重新分配以纠正一个。就我而言

ANDROID_HOME=F:\Program Files (x86)\Android\android-sdk

【讨论】:

谢谢,我让它指向了其他地方建议的 android studio。【参考方案9】:

2018

The "android" command is deprecated.

试试

sdkmanager "build-tools;27.0.3"

正如#Fadhil 所说,这对我有用

【讨论】:

【参考方案10】:

对我来说,问题在于 ANDROID_HOME 指向的是旧的 Android SDK 路径。安装 Android Studio 后,我不得不为 MAC (El Capitan) 相应地更新 ~/.bash_profile

导出 ANDROID_HOME="/Users/corneliusparkin/Library/Android/sdk"

更新~/.bash_profile后记得重启终端或运行此命令

来源 ~/.bash_profile

【讨论】:

【参考方案11】:

FOR WINDOW:我遇到过这类问题。但是在探索它之后解决了我的情况。我正在使用窗口 10。只需按照以下几个步骤操作:

    下载适用于 Windows 的 Android SKD 管理器。 https://developer.android.com/studio 在 本页结束。它是 zip 文件。解压后会显示工具目录。

    转到驱动器 C:\ 创建新文件夹“android-sdk”。复制工具文件夹和过去 C:\android-sdk

    以管理员身份打开命令提示符。转到 cd " c:\android-sdk\tools\bin "。 sdkmanager 将在这里显示。类型 skdmanager,它会这样显示 [========================================] 100% 计算更新...

    在输入“sdkmanager platform-tools”之后,它将创建平台工具目录 在 C:\android-sdk

    现在设置系统环境变量:右键PC选择 特性。系统设置将弹出。单击 > 环境变量。环境 变量将弹出。

    在这个窗口系统变量是这样的。 C:\android-sdk\platform-tools 和 C:\android-sdk\tools\bin

    运行命令构建工具 sdkmanager "build-tools;27.0.3"

    还要确保定义了 java 路径。希望能解决问题。

【讨论】:

在第没有。 3 你有拼写错误“skdmanager”应该是sdkmanager【参考方案12】:

在命令行中输入 android 并安装“Android SDK Build-tools”

【讨论】:

就我而言,你是对的。我忘了从 SDK Manager 安装 Android SDK Build 工具。谢谢!【参考方案13】:

我搜索了几天这个问题....我希望它会有用

最终解决方案: (假设你已经安装了Oracle-JDK和ANDROID)

打开 /etc/environment
 sudo nano /etc/environment


PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/shoniisra/Android/Sdk/tools:/home/shoniisra/Android/Sdk/platform-tools:/home/shoniisra/Android/Sdk/build-tools:/home/shoniisra/Android/Sdk:/home/shoniisra/android-studio/bin"
JAVA_HOME="/home/shoniisra/java/jdk1.8.0_231"
ANDROID_HOME="/home/shoniisra/Android/Sdk/build-tools/29.0.2"
ANDROID_SDK_ROOT="/home/shoniisra/Android/Sdk"
ANT_HOME="/home/shoniisra/ant/apache-ant-1.9.14"

保存并退出(CTRL+o CTRL+X)

重新加载文件source /etc/environment

如果您最近安装了 Android,您应该接受一些许可

cd ~/Android/Sdk/tools/bin/

执行 sdkmanager:

./sdkmanager --licenses

然后全部接受,最后生成你的APK

cd yourproyect
sudo ionic cordova build android

【讨论】:

【参考方案14】:

我已经通过以下步骤解决了这个问题:

    转到cordova.gradle 文件 (平台/android/cordovaLib/cordova.gradle) 搜索 getAndroidSdkDir() 方法 现在只需将 System.getenv("ANDROID_HOME") 替换为您的真实 Android SDK 路径

【讨论】:

【参考方案15】:

在 build.gradle 脚本中,它会检查 build-tools 版本是否低于 Gradle 配置中的 maxVersion。 所以就我而言,我设置了环境 SDK 变量,但我的版本高于允许的版本。

def highestBuildToolsVersion = buildToolsDirContents
    .collect  new Version(it) 
    // Invalid inputs will be handled as 0.0.0
    .findAll  it.isHigherThan('0.0.0') && it.isLowerThan(maxVersion) 
    .max()

【讨论】:

这就是我的问题,你只需要转到 Android SDK Manager --> SDK Tools,然后检查“显示包详细信息”并安装缺失的版本。【参考方案16】:

在我的情况下,问题是 ANDROID_HOME 出于某种原因指向~/Library/Android/。 正确的路径是~/Library/Android/sdk

【讨论】:

【参考方案17】:

我用以下细节解决了这个问题,不知何故,android SDK 管理安装了所有依赖项和必要的文件,但忘记了这个 `templates` 文件在哪里找到模板> gradle> 包装器。缺少这组文件。

mac中的路径 /Users/giogio/Library/Android/sdk/tools/templates

【讨论】:

【参考方案18】:

这对我有用!小心新的 java 版本,因为它们会导致错误,请检查您是否已安装所有内容并在您的特定目录中,

我没有使用 openJDK

export JAVA_HOME="/usr/lib/jvm/java-8-jdk" \
&& export PATH=$JAVA_HOME/bin:$PATH \
&& export ANDROID_HOME=$HOME/Android/Sdk \
&& export PATH=$PATH:$ANDROID_HOME/tools \
&& export PATH=$PATH:$ANDROID_HOME/platform-tools \
&& export GRADLE_HOME=/usr/share/java/gradle/bin/gradle \
export PATH=$PATH:$GRADLE_HOME/bin

Linux 4.14.39-1-MANJARO #1 SMP PREEMPT Wed May 2 19:03:39 UTC 2018 x86_64 GNU/Linux

【讨论】:

【参考方案19】:

我添加了&lt;preference name="android-minSdkVersion" value="19" /&gt; 到我的conf.xml,构建成功。

【讨论】:

【参考方案20】:

这个问题的解决方案在这里 https://docops.ca.com/devtest-solutions/8-0-2/en/installing/setting-up-the-mobile-testing-environment/preinstallation-steps-for-mobile-testing/

请按照以下步骤解决您的问题。

Android SDK 包包含一个称为编译工具的组件。移动测试至少需要 19.0.1、19.1.0 或 20.0.0 版本。

如果您的 ADT 包未安装这些版本,您可能会在开发测试工作站中创建移动资产时收到错误消息:

【讨论】:

【参考方案21】:

Mac ios

使用 vi 或其他 shell 编辑器编辑 ~/.bash_profile

vi ~/.bash_profile

添加以下行:

export ANDROID_HOME=~/Library/Android/sdk
export PATH=$PATH:~/Software/android-sdk-macosx/tools:~/Software/android-sdk-macosx/platform-tools"

(保存文件,然后退出) 将那些更新的环境变量加载到当前的 shell 环境中:

. ~/.bash_profile
如果由于某种原因您拥有旧版本的构建工具,您可以从 android 开发工作室更新它们: 配置 --> SDK 管理器 --> 选择“Android SDK Build-Tools” 检查“显示包裹详情” 查看此软件包的版本,如果需要更新

【讨论】:

【参考方案22】:

嗯,很多人给出了他们的答案,有些答案是相同的,有些答案是不同的。我尝试了很多答案,但它们对我不起作用,当然我也尝试了上面的答案,但没有解决我的问题。而且我不知道为什么,但即使我的问题被这个ANSWER 解决了,我也有同样的错误。我只是想写它可能对某人有帮助。

【讨论】:

【参考方案23】:

我已经尝试了上述所有解决方案。没有工作。 直到我链接到https://forum.ionicframework.com/t/ionic-v4-no-installed-build-tools-found/152150.

显然,您必须以 root 身份运行该命令。 sudo 是不够的。您需要先更改为 root 用户才能运行所有命令。

【讨论】:

【参考方案24】:

使用 SET ANDROID_HOME 打开命令提示符检查 ANDROID_HOME 路径,如果未设置则使用以下命令设置。

 SET ANDROID_HOME="C:\Users\VenkateshMogili\AppData\Local\Android\Sdk"

或 打开系统环境变量并创建新变量为

 Variable Name: ANDROID_HOME
 Variable Value: C:\Users\VenkateshMogili\AppData\Local\Android\Sdk

并打开 cordova.gradle 文件 (/platforms/android/CordovaLib/cordova.gradle) 并搜索 getAndroidSdkDir() 方法和将 ANDROID_HOME 路径 ("C:/Users/VenkateshMogili/AppData/Local/Android/Sdk") 替换为 System.getenv("ANDROID_HOME")

如果出现许可证问题,则通过在 C:\Users\VenkateshMogili\AppData\Local\Android\Sdk\tools\bin 中打开命令提示符键入以下命令

  sdkmanager "build-tools;27.0.3"  //<-that will create build-tools folder and licenses folder.

它对我有用。

【讨论】:

发布的日志 OP 的第五行不是已经显示 ANDROID_HOME 已设置(到 /opt/android-sdk)吗? 检查您的主目录后,它通常会出现在主目录 /home/username/Android/sdk 中,如果找到,请尝试设置。将以下行粘贴到 .bashrc 文件的末尾(在主目录中) export ANDROID_HOME=$HOME/Android/Sdk【参考方案25】:

对使用虚拟机的开发者的警告

我花了很长时间试图解决这个问题。我尝试了这篇文章中的所有内容以及网络上的更多解决方案。然而,在经历了多次失败并经历了网上每个人的说法之后,我仍然无法解决我的 VM 上的问题 - 这是 VMWare Workstation 上的 Windows 10 映像。

在查看了人们正在开发的机器/操作系统的所有解决方案和描述后,我发现我的设置明显不同,我是在虚拟机中开发的。

解决方案:我将所有代码拉到主机(Windows 10 操作系统)上,重新安装了所有依赖项,并确保一切顺利。经过大量研究后,我发现一些警告表明 Android Studio 在某些虚拟机中正确安装存在一些已知问题。因此,如果您像我一样尝试了所有解决方案(多次尝试)但没有任何效果,但您在虚拟机中,您可能需要考虑在您的主机(或其他物理机器)上构建

【讨论】:

【参考方案26】:

如果您对 cordova 安装进行升级,也会出现此问题。

检查您的日志错误是否类似于:

Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=undefined (recommended setting) <-------------
ANDROID_HOME=/path/android-sdk-linux (DEPRECATED)
Using Android SDK: /usr/lib/android-sdk
Starting a Gradle Daemon (subsequent builds will be faster)

在这种情况下,只需将 ~/.bashrc 中的 ANDROID_HOME 更改为 ANDROID_SDK_ROOT 或类似的配置文件。

以前在哪里:

export ANDROID_HOME="/path/android-sdk-linux"

现在是:

export ANDROID_SDK_ROOT="/path/android-sdk-linux"

别忘了来源:$ . ~/.bashrc 编辑后。

【讨论】:

【参考方案27】:

检查您是否在环境文件(.bash_profile)中添加了android SDK路径。如果您使用默认路径安装了 android studio,则将以下行添加到您的环境文件中。就我而言,我使用的是 bash,所以我更新了 .bash_profile

export ANDROID_HOME=~/Library/Android/sdk
export ANDROID_SDK_ROOT=~/Library/Android/sdk
export ANDROID_AVD_HOME=~/.android/avd

【讨论】:

【参考方案28】:

我浪费了一天的时间来解决这个问题,最后我得到了解决方案 -首先我删除了离子cordova平台android -安装离子cordova平台android@8

就是这样

【讨论】:

【参考方案29】:
    创建一个 ~/.bash_profile 和 ~/.zshrc 文件。 触摸 ~/.bash_profile; 触摸~/.zshrc; 编辑并复制/粘贴到您的 ~/.bash_profile 或 ~/.zshrc 文件中 因此,请转到您的文件管理器并使用 Cmd+Shift+ 显示所有隐藏文件。或 Cmd+>

i) 编辑您的 .zshrc 文件

export LANG=en_US.UTF-8 
export ANDROID_HOME=/Users/bookwarm/Library/Android/sdk
export ANDROID_SDK_ROOT=~/Library/Android/sdk
export ANDROID_AVD_HOME=~/.android/avd
export PATH=$PATH:/Users/your name/Library/Android/sdk/tools
export PATH=$PATH:/Users/your name/Library/Android/sdk/tools/sdkmanager
export PATH=$PATH:/Users/your name/Library/Android/sdk/platform-tools
export PATH=$PATH:/Users/your name/Library/Android/sdk/build-tools
export PATH=$PATH:/Users/your name/Library/Android/sdk/tools/bin
export ANDROID_NDK=/Users/your name/Library/Android/sdk/ndk-bundle
export JAVA_HOME=$(/usr/libexec/java_home)

ii) 编辑您的 .bash_profile 文件

export ANDROID_HOME=/Users/your name/Library/Android/sdk
export ANDROID_SDK_ROOT=~/Library/Android/sdk
export ANDROID_AVD_HOME=~/.android/avd
export PATH=$PATH:/Users/your name/Library/Android/sdk/tools
export PATH=$PATH:/Users/your name/Library/Android/sdk/tools/sdkmanager
export PATH=$PATH:/Users/your name/Library/Android/sdk/platform-tools
export PATH=$PATH:/Users/your name/Library/Android/sdk/build-tools
export PATH=$PATH:/Users/your name/Library/Android/sdk/tools/bin
export ANDROID_NDK=/Users/your name/Library/Android/sdk/ndk-bundle
export JAVA_HOME=$(/usr/libexec/java_home)
    使用 file->save 保存文件,就像保存任何常规文件一样,然后在终端中写入 源〜/ .bash_profile; 源〜/ .zshrc; 关闭您的终端并立即运行您的命令

【讨论】:

【参考方案30】:

进入 D:Android sdk\Android SDK 并点击 SDK Manager 并检查是否安装了 Build Tools 如果没有安装然后安装这些工具

【讨论】:

以上是关于离子构建Android |错误:未找到已安装的构建工具。请安装 Android 构建工具的主要内容,如果未能解决你的问题,请参考以下文章

无法获得离子来构建android apk

离子包构建失败 - 离子角度工具包

离子构建android错误gradle错误

离子构建android,错误:产生EACCES

Android 构建错误:“未找到 lStar...”

离子发布:Android 包无法构建