":应用程序:buildNative“。 > !将execCommand == NULL"建立我的机器人工作室的应用程序时使用NDK。是什么原因造成这种/我该怎么TS进一步? [英] ":app:buildNative'. > execCommand == null!" when building my app in Android Studio and using NDK. What is causing this/how can I TS further?
问题描述
这是我试图建立我的机器人工作室的Android应用程序时发现了错误。该应用程序使用NDK我认为这是什么原因造成的问题。我很新与Android的工作室,并一直在处理这个问题上约2个星期了。经过大量的谷歌搜索的,我不明白的问题是什么/如何TS这一点,没有任何想法是怎么回事。我也想不出如何使用上的 build.gradle
文件或如何调试器看到 System.env.ANDROID_NDK_HOME <值/ code>。我似乎停留在墙上,所以任何帮助/建议是AP preciated。
错误:摇篮:执行失败的任务:应用程序:buildNative。
将execCommand == NULL!
这是在build.gradle的buildNative任务。
任务buildNative(类型:执行){
如果(System.env.ANDROID_NDK_HOME!= NULL){
高清ndkBuild =新的文件(System.env.ANDROID_NDK_HOME,NDK建造)
命令行ndkBuild
} 其他 {
doLast {
的println'##################'
的println跳绳NDK版本
的println原因:ANDROID_NDK_HOME未设置。
的println'##################'
}
}
}
这里是堆栈跟踪
*例外是:
org.gradle.api.tasks.TaskExecutionException:执行失败的任务:应用程序:buildNative。
在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
在org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
在org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
在org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
在org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
在org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
在org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
在org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
在org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:289)
在org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
在org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
在org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
在org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ 1.运行(DefaultTaskPlanExecutor.java:33)
在org.gradle.internal.Factories $ 1。创建(Factories.java:22)
在org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:198)
在org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:266)
在org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:135)
在org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:95)
在org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:31)
在org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
在org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
在org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
在org.gradle.execution.DefaultBuildExecuter.access $ 200(DefaultBuildExecuter.java:23)
在org.gradle.execution.DefaultBuildExecuter $ 2.proceed(DefaultBuildExecuter.java:67)
在org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
在org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
在org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
在org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166)
在org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
在org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
在org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
在org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
在org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
在org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
在org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
在org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
在org.gradle.internal.Actions $ RunnableActionAdapter.execute(Actions.java:171)
在org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
在org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
在org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
在org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
在org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
在org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
在org.gradle.launcher.Main.doAction(Main.java:46)
在org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
在org.gradle.launcher.Main.main(Main.java:37)
在org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
在org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
在org.gradle.launcher.GradleMain.main(GradleMain.java:23)
在org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33)
在org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130)
在org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)
致:java.lang.IllegalStateException:将execCommand == NULL!
在org.gradle.process.internal.AbstractExecHandleBuilder.build(AbstractExecHandleBuilder.java:120)
在org.gradle.process.internal.DefaultExecAction.execute(DefaultExecAction.java:28)
在org.gradle.api.tasks.Exec.exec(Exec.java:63)
在org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
在org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:219)
在org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212)
在org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201)
在org.gradle.api.internal.AbstractTask $ TaskActionWrapper.execute(AbstractTask.java:533)
在org.gradle.api.internal.AbstractTask $ TaskActionWrapper.execute(AbstractTask.java:516)
在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
... 52更多
假设你有一个Mac上运行在终端以下命令:
这些命令将设置您所使用的环境变量。
该命令设置NDK的位置:
launchctl SETENV ANDROID_NDK_HOME /路径到您的-NDK
此命令设置你的项目路径,以便NDK会知道你正在做哪种项目:
launchctl SETENV NDK_PROJECT_PATH /路径到你的项目
This is the error I am getting when trying to build my android app in android studio. The app is using NDK which I think is what is causing the issue. I am very new with android studio and have been dealing with this issue for about 2 weeks now. After lots of googling, I don't understand what the issue is/how to TS this and don't have any idea what is going on. I also can't figure out how to use the debugger on the build.gradle
file or how to see the value of System.env.ANDROID_NDK_HOME
. I seem to be stuck at a wall, so any help/advise is appreciated.
Error:Gradle: Execution failed for task ':app:buildNative'.
execCommand == null!
This is the buildNative task in build.gradle.
task buildNative(type: Exec) {
if (System.env.ANDROID_NDK_HOME != null) {
def ndkBuild = new File(System.env.ANDROID_NDK_HOME, 'ndk-build')
commandLine ndkBuild
} else {
doLast {
println '##################'
println 'Skipping NDK build'
println 'Reason: ANDROID_NDK_HOME not set.'
println '##################'
}
}
}
And here is the stack trace
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:buildNative'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:289)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$1.run(DefaultTaskPlanExecutor.java:33)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:198)
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:266)
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:135)
at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:95)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:31)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
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:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at org.gradle.launcher.Main.doAction(Main.java:46)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
at org.gradle.launcher.Main.main(Main.java:37)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)
Caused by: java.lang.IllegalStateException: execCommand == null!
at org.gradle.process.internal.AbstractExecHandleBuilder.build(AbstractExecHandleBuilder.java:120)
at org.gradle.process.internal.DefaultExecAction.execute(DefaultExecAction.java:28)
at org.gradle.api.tasks.Exec.exec(Exec.java:63)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:219)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:533)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:516)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
... 52 more
Assuming you have a Mac run these commands in the terminal:
These commands will set the environment variables that you are using.
This command sets the ndk location:
launchctl setenv ANDROID_NDK_HOME /path-to-your-ndk
This command sets your project path so the ndk will know what project you are working on:
launchctl setenv NDK_PROJECT_PATH /path-to-your-project
这篇关于&QUOT;:应用程序:buildNative“。 &GT; !将execCommand == NULL&QUOT;建立我的机器人工作室的应用程序时使用NDK。是什么原因造成这种/我该怎么TS进一步?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!