离子构建Android | 错误:找不到安装的生成工具。请安装Android构建工具


94

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

失败:生成失败,发生异常。

  • 其中:脚本'/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


Answers:


51

我通过使用来下载sdk软件包(称为platform-toolsbuid-tools)来解决此问题sdkmanager。您可以使用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

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


2
不要忘记以管理员身份运行cmd以避免错误。我遇到警告:“无法读取或创建安装属性文件”错误
neustart47

谢谢,这对于我在构建过程中至关重要。
BarryMode '18

在bin文件夹中打开的终端:说sdkmanager:找不到命令
MJ Montes

@LasLemieux,请检查是否正确安装了SDK CLI。如果您正在使用Windows,则应该有一个名为sdkmanage.exe的文件。
Fadhil

42

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

export ANDROID_HOME=~/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

永久添加

跟着这些步骤:

  1. 在文本编辑器中打开主目录中的.bash_profile文件(例如,/ Users /您的用户名/.bash_profile)。
  2. export PATH="The above exports here"到文件的最后一行,其中your-dir是要添加的目录。
  3. 保存.bash_profile文件。
  4. 重新启动您的终端

为不同系统添加到bash流程


3
这每次都对我有帮助,但是一旦我关闭终端或重新启动mac,我就需要再次执行此操作
Forza

这对我有用。@Forza如果将其添加到〜/ .bash_profile中,则它将每次运行。
caden311 '19

我错误地将那些PATH子目录附加到了我的ANDROID_HOME变量中。一旦我清理了它,它就起作用了!
umbyersw

如何使您不必在每次重新启动终端时都重新运行命令?
罗斯·罗林斯

我试过了,但它不粘住,每次打开终端时我都必须这样做。
罗斯·罗林斯

29

您缺少android SDK工具。请尝试以下操作:

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

哪里<package no.>1,2,3,n

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

6
这让我感到Filter 19 not supported
震惊

2
2018年更新:-t android-27用于版本27等
andersand '18

21

如错误提示“未找到已安装的构建工具”, 则表示

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:重要重要设置环境变量后,您需要重新加载环境变量。

//For ubuntu
$source .bashrc 

//For macos
$source .bash_profile

4:然后签入终端

$printenv ANDROID_HOME
$printenv PATH

注意:如果您在printenv中未找到更改,请重新启动计算机,然后重试printenv PATH,printenv ANDROID_HOME。还有命令重新加载环境变量。

4:然后打开终端并输入半文本'$ and'并单击Tab。在选项卡上,您应该看到完整的'$ android'名称,这可以验证所有路径是否正确

5:在终端中写入$ android并按Enter


18

请安装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

6
过滤器19和过滤器20,不支持
Skizo-ozᴉʞS

1
同样在这里@ Skizo-ozᴉʞS
Bhimashankar Mantur

17

我通过将ANDROID_HOME从错误的先前目录更改 为 C:\ Users \ Gebru \ AppData \ Local \ Android \ Sdk修复错误。


这对我有用。我没有ANDROID_HOME设置,科尔多瓦认为/usr/lib/android-sdk这是不正确的
hughjdavey

除了在/ Sdk之前停了下来外,我有同样的想法。似乎该行有任何问题将其中断

6

我知道这看起来并不相关,尤其是出现错误消息时,但是我通过安装更新​​版本的Android SDK Build工具来解决此问题。


6

在我的情况下,环境变量ANDROID_HOME指向错误的(旧)目录。我重新分配来更正一个。就我而言

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


1
谢谢,我把它指向了其他地方建议的android studio。
jcubic

5

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

导出ANDROID_HOME =“ / Users / corneliusparkin / Library / Android / sdk”

记住在更新〜/ .bash_profile之后重新启动终端或运行此命令

来源〜/ .bash_profile


5

FOR WINDOW:我已经遇到过此类问题。但是经过探索,在我看来,它解决了。我正在使用窗口10。只需执行以下几个步骤:

  1. 下载适用于Windows的Android SKD Manager。此页面末尾的https://developer.android.com/studio。这是zip文件。解压缩后将显示工具目录。

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

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

  4. 输入“ sdkmanager platform-tools”后,它将在C:\ android-sdk中创建platform-tools目录

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

  6. 在此窗口中,系统变量如下所示。C:\ android-sdk \ platform-tools和C:\ android-sdk \ tools \ bin

  7. 运行命令以构建工具sdkmanager“ build-tools; 27.0.3”

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


要点 3您有拼写错误“ skdmanager”,应该是sdkmanager
Santosh



2

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

最终解决方案:(我假设您已经安装了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

1

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


0

这对我有用!请小心新的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周三5月2日19:03:39 UTC 2018 x86_64 GNU / Linux

看到我的外壳截图



0

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

请按照以下步骤操作,并解决您的问题。

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

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


0

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"

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

. ~/.bash_profile
  • 如果出于某种原因您拥有旧版本的构建工具,则可以从android development studio更新它们:
  • 配置-> SDK管理器->选择“ Android SDK生成工具
  • 检查“显示包装详细信息”
  • 查看此软件包的版本,如果需要更新

0

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



0

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

  1. 转到cordova.gradle文件(platform / android / cordovaLib / cordova.gradle)
  2. 搜索getAndroidSdkDir()方法
  3. 现在,只需将System.getenv(“ ANDROID_HOME”)替换为真实的Android SDK路径

0

打开命令提示符使用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)?
LWChris

检入主目录后,大多数情况下它可能会出现在主目录/ home / username / Android / sdk中。尝试找到它进行设置。将以下行粘贴到.bashrc文件的末尾(位于主目录中)export ANDROID_HOME = $ HOME / Android / Sdk
VenkateshMogili

0

对使用虚拟机的开发人员的警告

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

在回顾了机器/操作系统的所有解决方案和说明之后,人们在我在VM中进行开发时所遇到的显着差异就是在我的设置方面进行了开发。

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


0

我用以下详细信息解决了这个问题,Android SDK以某种方式管理了所有依赖项和必需的文件,但忘记了这些`templates`文件,该文件位于模板> gradle>包装器中。这组文件丢失。

屏幕截图

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


-1

转到D:Android sdk \ Android SDK,然后单击SDK Manager并检查是否已安装构建工具(如果未安装),然后安装这些工具


-1
This is very irritating error and i wasted my almost 9 hours to solve this.

Steps to solve:

Notice **ANDROID_HOME** while you run **ionic cordova build android** . command i. for example in my case it was pointing to some other android sdk which i uninstalled and then it started pointing to right sdk.
**In my case i uninstalled :**

brew cask uninstall android-sdk
brew cask uninstall android-platform-tool


then i ran **ionic cordova build android**

> cordova build android
ANDROID_HOME=/Users/anand/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home


Then it might say lineces not accepted then run below command :

cd /Users/Android/sdk/tools/bin/
then run ./sdkmanager --licenses
accepts all with y option


Then it might say unable to download jars then go to platform android and build.gradle

and search for buildscript and inside that reverse the order 


repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }

Thats it . Enjoy huh
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.