问题描述
当我在ionic项目的根目录中运行ionic build android命令时,出现此错误:
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.
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中,我有:
export PATH=$PATH:/opt/android-sdk/tools
export PATH=$PATH:/opt/android-sdk/platform-tools
export PATH=$PATH:/opt/node/bin
export JAVA_HOME=/usr/lib/jvm/default-java
export 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
最佳思路
我通过使用sdkmanager
下载名为platform-tools和buid-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 android
或ionic build android
。
注意:通过将~\AppData\Local\Android\sdk\tools
和~\AppData\Local\Android\sdk\tools\bin
添加到您的环境变量来全球化sdkmanager
命令。
次佳思路
对我来说,运行这三个命令可以解决Mac上的问题:
export ANDROID_HOME=~/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
为了方便复制,这里是one-liner
export ANDROID_HOME=~/Library/Android/sdk && export PATH=${PATH}:${ANDROID_HOME}/tools && export PATH=${PATH}:${ANDROID_HOME}/platform-tools
永久添加
按着这些次序:
-
在文本编辑器中打开主目录中的.bash_profile文件(例如,/Users /your-user-name /.bash_profile)。
-
将
export PATH="The above exports here"
添加到文件的最后一行,其中your-dir是要添加的目录。 -
保存.bash_profile文件。
-
重新启动您的终端
Adding to bash process for different systems
第三种思路
您缺少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
第四种思路
由于错误显示“未找到已安装的构建工具”,这意味着
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路径,printenv ANDROID_HOME。还可以使用命令重新加载环境变量。
4:然后打开终端并输入HALF TEXT ‘$and’并单击Tab。在选项卡上,您应该看到完整的’$android’名称。这可以验证所有路径是否正确
5:在终端中写入$ android并按Enter
第五种思路
Please install the Android build tools version 19.1.0 or higher.
以下命令可以在Ubuntu上快速更新Android SDK并修复上述错误:
android list sdk --all
android update sdk -u -a -t 19
android update sdk -u -a -t 20
第六种思路
我通过将ANDROID_HOME从错误的先前目录更改为C:\ Users \ Gebru \ AppData \ Local \ Android \ Sdk来修复错误。
第七种思路
我知道这看起来并不相关,尤其是在出现错误消息的情况下,但是我通过安装更新版本的Android SDK Build工具来解决此问题。
第八种思路
在我的情况下,环境变量ANDROID_HOME指向错误的(旧)目录。我重新分配来更正一个。就我而言
ANDROID_HOME = F:\ Program Files(x86)\ Android \ android-sdk
第九种思路
FOR WINDOW:我已经遇到过此类问题。但经过探索,在我看来情况已解决。我正在使用窗口10。只需执行以下几个步骤:
-
下载适用于Windows的Android SKD Manager。此页面末尾的https://developer.android.com/studio。这是zip文件。解压缩后将显示工具目录。
-
转到驱动器C:\创建新文件夹’android-sdk’。复制工具文件夹和过去的C:\ android-sdk
-
以管理员身份打开命令提示符。转到cd“ c:\ android-sdk \ tools \ bin”。 sdkmanager将显示在这里。类型skdmanager,它将显示为[======================================= %计算更新…
-
输入“ sdkmanager platform-tools”后,它将在C:\ android-sdk中创建platform-tools目录
-
现在设置系统环境变量:右键单击PC选择属性。系统设置将会弹出。点击>环境变量。环境变量将弹出。
-
在此窗口中,系统变量如下所示。 C:\ android-sdk \ platform-tools和C:\ android-sdk \ tools \ bin
-
运行命令以构建工具sdkmanager “build-tools;27.0.3″还要确保定义了Java路径。我希望它能解决问题。
第十种思路
对我来说,问题是ANDROID_HOME指向旧的Android SDK路径。安装Android Studio后,我必须为MAC(El Capitan)相应地更新〜/.bash_profile。
导出ANDROID_HOME =“ /Users /corneliusparkin /Library /Android /sdk”
记住要更新到〜/.bash_profile后再到re-start终端或运行此命令
源〜/.bash_profile