简体   繁体   English

科尔多瓦建立Android失败

[英]Cordova build android failed

I am working on linux 14.04 OS and using Cordova to develop cross platform mobile apps 我正在使用Linux 14.04 OS并使用Cordova开发跨平台移动应用程序

my system info is 我的系统信息是

Cordova CLI: 6.1.1 科尔多瓦CLI:6.1.1
Ionic CLI Version: 1.7.14 Ionic CLI版本:1.7.14
Ionic App Lib Version: 0.7.0 Ionic应用程序库版本:0.7.0
OS: Distributor ID: Ubuntu Description: Ubuntu 14.04.4 LTS 操作系统:Distributor ID:Ubuntu说明:Ubuntu 14.04.4 LTS
Node Version: v5.10.1 节点版本:v5.10.1

I installed all android sdk required tools for API 20,21,22,23 and 24 我为API 20、21、22、23和24安装了所有android sdk所需的工具

then I run the following 然后我运行以下

 cordova platform add android
 cordova build android

each time I had the same error 每次我有同样的错误

Failed to notify ProjectEvaluationListener.afterEvaluate(), but primary configuration failure takes precedence. 无法通知ProjectEvaluationListener.afterEvaluate(),但主要配置失败优先。 java.lang.IllegalStateException: buildToolsVersion is not specified. java.lang.IllegalStateException:未指定buildToolsVersion。 at com.google.common.base.Preconditions.checkState(Preconditions.java:176) at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:599) at com.android.build.gradle.BasePlugin$10$1.call(BasePlugin.java:566) at com.android.build.gradle.BasePlugin$10$1.call(BasePlugin.java:563) at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:55) at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:47) at com.android.build.gradle.BasePlugin$10.execute(BasePlugin.java:562) at com.android.build.gradle.BasePlugin$10.execute(BasePlugin.java:559) at org.gradle.listener.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:109) at org.gradle.listener.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:98) at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:83) at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:31) at org.gradle.messaging.dispatch.ProxyDispatchAda 在com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:599)在com.android.build.gradle.BasePlugin.com上的com.google.common.base.Preconditions.checkState(Preconditions.java:176)在com.android.build.gradle.BasePlugin $ 10 $ 1在com.android.build.gradle.BasePlugin $ 10 $ 1.call(BasePlugin.java:563)在com.android.builder.profile.ThreadRecorder $ 1.record(ThreadRecorder.java:55)的.call(BasePlugin.java:566)在com.android.build.gradle.BasePlugin的com.android.builder.profile.ThreadRecorder $ 1.record(ThreadRecorder.java:47)处com.android.build.gradle.BasePlugin $ 10.execute(BasePlugin.java:562)处org.gradle.listener.BroadcastDispatch $ ActionInvocationHandler.dispatch(BroadcastDispatch.java:98)的org.gradle.listener.BroadcastDispatch $ ActionInvocationHandler.dispatch(BroadcastDispatch.java:109)的org.gradle.listener.BroadcastDispatch $ ActionInvocationHandler.dispatch(BroadcastDispatch.java:98)的$ 10.execute(BasePlugin.java:559) org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)上的.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:83)位于org.gradle.messaging.dispatch.ProxyDispatchAda pter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) at com.sun.proxy.$Proxy13.afterEvaluate(Unknown Source) at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:79) at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:65) at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:504) at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:83) at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:42) at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35) at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:129) at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106) at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86) at org.gra 位于org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:79)的com.sun.proxy。$ Proxy13.afterEvaluate(未知源)的pter $ DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:504)上的.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:65)在org.gradle.api.internal.project.AbstractProject.evaluate (AbstractProject.java:83)在org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:42)在org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)在org.gradle.initialization.DefaultGradleLauncher。 org.gradle.initialization的doBuildStages(DefaultGradleLauncher.java:129)org.gradle.initialization.Default的DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)org.gra的org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86) dle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:80) at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:47) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:35) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.ser org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)的dle.launcher.exec.InProcessBuildActionExecuter $ DefaultBuildController.run(InProcessBuildActionExecuter.java:80)在org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36)在org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)处ExecuteBuildAction.java:24) org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)上的.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:47)在org.gradle.launcher.daemon.server上org.gradle.launcher.daemon.server.exec.DaemonCommandExecution上的.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)在org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:35)在org.gradle.launcher.daemon.server.exec.DaemonCommandExecution .proceed(DaemonCommandExecution.java:119)在org.gradle.launcher.daemon.ser ver.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:24) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.StartStopIfBuildAndStop.execute(StartStopIfBuildAndStop.java:33) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:71) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:69) at org.gradle.util.Swapper.swap(Swapper.java:38) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:69) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnl org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)上的ver.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:24)在org.gradle.launcher.daemon.server.exec上。在org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)处的StartStopIfBuildAndStop.execute(StartStopIfBuildAndStop.java:33)在org.gradle.launcher.daemon.server.exec.ForwardClientInput $ 2.call (ForwardClientInput.java:71),位于org.gradle.launcher.daemon.server.exec.ForwardClientInput $ 2.call(ForwardClientInput.java:69),位于org.gradle.util.Swapper.swap(Swapper.java:38),位于org org.gradle.launcher的.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:69)位于org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)位于org.gradle.launcher org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnl)上的.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60) y.java:34) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:70) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.DaemonHygieneAction.execute(DaemonHygieneAction.java:39) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:46) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246) at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64) at java.util.concurrent.ThreadPoolExecu y.java:34),位于org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119),位于org.gradle.launcher.daemon.server.exec.BuildBuildEnvironment.doBuild(CreateBuildEnvironment.java: 70)在org.orgle.org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)在org.org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)位于org.gradle.launcher的.gradle.launcher.daemon.server.exec.DaemonHygieneAction.execute(DaemonHygieneAction.java:39)位于org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) org.gradle.launcher.daemon.server.DaemonStateCoordinator $ 1.run(DaemonStateCoordinator.java:246)上的.daemon.server.exec.StartBuildOrRespondWithBusy $ 1.run(StartBuildOrRespondWithBusy.java:46)在org.gradle.internal.concurrent.DefaultExecutorFactory $ StoppableExecutorImpl $ 1.run(DefaultExecutorFactory.java:64)在java.util.concurrent.ThreadPoolExecu tor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) 位于java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)的tor.runWorker(ThreadPoolExecutor.java:1145)在java.lang.Thread.run(Thread.java:745)

FAILURE: Build failed with an exception. 失败:构建失败,发生异常。

  • Where: Script '/vagrant_data/newApp/platforms/android/CordovaLib/cordova.gradle' >line: 64 其中:脚本'/vagrant_data/newApp/platforms/android/CordovaLib/cordova.gradle'>行:64

  • What went wrong: A problem occurred evaluating root project 'android'. 出了什么问题:评估根项目“ android”时发生问题。 No installed build tools found. 找不到安装的构建工具。 Please install the Android build tools >version 19.1.0 or higher. 请安装> 19.1.0或更高版本的Android构建工具。

  • Try: Run with --stacktrace option to get the stack trace. 尝试:使用--stacktrace选项运行以获取堆栈跟踪。 Run with --info or -->debug option to get more log output. 使用--info或-> debug选项运行,以获取更多日志输出。

BUILD FAILED 建立失败

Total time: 1.929 secs Error: Error code 1 for command: >/vagrant_data/newApp/platforms/android/gradlew with args: cdvBuildDebug,->b,/vagrant_data/newApp/platforms/android/build.gradle,->Dorg.gradle.daemon=true,-Pandroid.useDeprecatedNdk=true 总时间:1.929秒错误:命令的错误代码1:> / vagrant_data / newApp / platforms / android / gradlew,带有args:cdvBuildDebug,-> b,/ vagrant_data / newApp / platforms / android / build.gradle,-> Dorg。 gradle.daemon = true,-Pandroid.useDeprecatedNdk = true

here is my PATH 这是我的路径

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:
~/android-sdk-linux:
~/android-sdk-linux/tools:
~/android-sdk-linux/platforms:
~/android-sdk-linux/platform-tools:
~/android-sdk-linux/build-tools: 
/usr/lib/jvm/java-1.7.0-openjdk-amd64/bin

any help will be appreciated Thanks! 任何帮助将不胜感激谢谢!

我认为您应该为工具,构建工具,平台工具的路径提供删除〜/ android-sdk-linux / platforms的方法:尝试一次,但我没有得到您正在添加Java路径的位置,就像我添加了JAVA_HOME = C:\\程序文件\\ Java \\ jdk

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM