ionic build android 失败 - 未找到构建工具

20 浏览
0 Comments

ionic build android 失败 - 未找到构建工具

我有一个ionic/cordova项目,我想通过模拟器来模拟这个项目,所以我使用\"ionic platform add android\"命令添加了android平台,然后我尝试运行\"ionic build android\"命令,但是失败了,输出如下:\nionic build android\n运行命令:\"C:\\Program Files\\nodejs\\node.exe\" \"D:\\web development\\My-Stuff s\\ionic\\Learn ionic by building apps\\mynote\\hooks\\after_prepare\\010_add_platform _class.js\" \"D:/web development/My-Stuffs/ionic/Learn ionic by building apps/myno te\"\n添加到body类中:platform-android\nANDROID_HOME=C:\\Program Files (x86)\\Android\\android-sdk\nJAVA_HOME=C:\\Program Files\\Java\\jdk1.7.0_80\n未能通知ProjectEvaluationListener.afterEvaluate(),但首要配置失 败优先。\njava.lang.IllegalStateException: 未指定buildToolsVersion。\n at com.google.common.base.Preconditions.checkState(Preconditions.java:17 6)\n at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.jav a:599)\n at com.android.build.gradle.BasePlugin$10$1.call(BasePlugin.java:566)\n at com.android.build.gradle.BasePlugin$10$1.call(BasePlugin.java:563)\n at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.ja va:55)\n at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.ja va:47)\n at com.android.build.gradle.BasePlugin$10.execute(BasePlugin.java:562)\n at com.android.build.gradle.BasePlugin$10.execute(BasePlugin.java:559)\n at org.gradle.listener.BroadcastDispatch$ActionInvocationHandler.dispatc h(BroadcastDispatch.java:109)\n at org.gradle.listener.BroadcastDispatch$ActionInvocationHandler.dispatc h(BroadcastDispatch.java:98)\n at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java :83)\n at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java :31)\n at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocat ionHandler.invoke(ProxyDispatchAdapter.java:93)\n at com.sun.proxy.$Proxy13.afterEvaluate(Unknown Source)\n at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfte rEvaluate(LifecycleProjectEvaluator.java:79)\n at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(L ifecycleProjectEvaluator.java:65)\n at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProj ect.java:504)\n at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProj ect.java:83)\n at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(Task PathProjectEvaluator.java:42)\n at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuil dConfigurer.java:35)\n at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(Default GradleLauncher.java:129)\n at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradle Launcher.java:106)\n at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLaun cher.java:86)\n at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildCon troller.run(InProcessBuildActionExecuter.java:80)\n at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.jav a:33)\n at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.jav a:24)\n at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProce ssBuildActionExecuter.java:36)\n at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProce ssBuildActionExecuter.java:26)\n at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBu ild.java:47)\n at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(Build CommandOnly.java:34)\n at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed (DaemonCommandExecution.java:119)\n at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute( WatchForDisconnection.java:35)\n at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed (DaemonCommandExecution.java:119)\n at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute (ResetDeprecationLogger.java:24)\n at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed (DaemonCommandExecution.java:119)\n at org.gradle.launcher.daemon.server.exec.StartStopIfBuildAndStop.execut e(StartStopIfBuildAndStop.java:33)\n at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed (DaemonCommandExecution.java:119)\n at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(Forw ardClientInput.java:71)\n at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(Forw ardClientInput.java:69)\n at org.gradle.util.Swapper.swap(Swapper.java:38)\n at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(For wardClientInput.java:69)\n at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed (DaemonCommandExecution.java:119)\n at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClien t.java:60)\n at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(Build CommandOnly.java:34)\n at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed (DaemonCommandExecution.java:119)\n at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBu ild(EstablishBuildEnvironment.java:70)\n at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(Build CommandOnly.java:34)\n at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed (DaemonCommandExecution.java:119)\n at org.gradle.launcher.daemon.server.exec.DaemonHygieneAction.execute(Da emonHygieneAction.java:39)\n at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed (DaemonCommandExecution.java:119)\n at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1. run(StartBuildOrRespondWithBusy.java:46)\n at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(Daemon StateCoordinator.java:246)\n at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecut orImpl$1.run(DefaultExecutorFactory.java:64)\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. java:1145)\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:615)\n at java.lang.Thread.run(Thread.java:745)\n构建失败。\n* 问题出现在哪里:\nScript \'D:\\web development\\My-Stuffs\\ionic\\Learn ionic by building apps\\mynote\\p latforms\\android\\CordovaLib\\cordova.gradle\'第64行\n* 出了什么问题:\n在评估根项目\'android\'时出现问题。\n> 未找到已安装的构建工具。请安装Android构建工具版本19.1.0或更高版本。\n* 尝试:\n使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项获取更多日志输出。\n构建失败\n总时间:1分钟16.86秒\nERROR building one of the platforms: Error code 1 for command: cmd with args: /s ,/c,\"\"D:\\web development\\My-Stuffs\\ionic\\Learn ionic by building apps\\mynote\\pla tforms\\android\\gradlew\" cdvBuildDebug -b \"D:\\web development\\My-Stuffs\\ionic\\Lea rn ionic by building apps\\mynote\\platforms\\android\\build.gradle\" -Dorg.gradle.da emon=true -Pandroid.useDeprecatedNdk=true\"\n您可能没有构建此项目所需的环境或操作系统\n错误:Error code 1 for command: cmd with args: /s,/c,\"\"D:\\web development\\My-St uffs\\ionic\\Learn ionic by building apps\\mynote\\platforms\\android\\gradlew\" cdvBui ldDebug -b \"D:\\web development\\My-Stuffs\\ionic\\Learn ionic by building apps\\myno te\\platforms\\android\\build.gradle\" -Dorg.gradle.daemon=true -Pandroid.useDepreca tedNdk=true\"\n\n我的系统信息:\n

Cordova CLI: 6.0.0
Ionic Version: 1.2.4
Ionic CLI Version: 1.7.14
Ionic App Lib Version: 0.7.0
操作系统:Windows 7 SP1
Node Version: v4.4.0

\n错误显示您没有构建工具,但我有一个!\n我的Android SDK:\n\"android

0
0 Comments

问题出现的原因:

在执行ionic build android命令时,系统提示找不到构建工具(build-tools)。

解决方法:

1. 确保已安装最新版本的Android Studio。

2. 在ionic项目中删除platforms文件夹。

3. 执行以下命令:

npm update -g ionic cordova

ionic state reset --plugins

cordova telemetry on

ionic platform add android

ionic build android

4. 确保已安装android-23平台和JDK。

经过以上步骤后,应该能成功生成apk文件。

0
0 Comments

问题出现的原因是我的ANDROID_HOME路径指向了Android Studio的文件夹。我将其更改为指向我的Android SDK文件夹,问题就解决了。

检查你的ANDROID_HOME路径:

echo $ANDROID_HOME

它应该指向Android SDK文件夹:

export ANDROID_HOME="你的Android SDK文件夹"

0