执行任务:[清洁]
按需配置是一项孵化功能。 NDK 缺少“平台”目录。如果您使用的是 NDK,请验证 ndk.dir 是否设置为有效的 NDK 目录。当前设置为 /Users/ishandutta2007/Library/Android/sdk/ndk-bundle。如果您不使用 NDK,请取消设置 ANDROID_NDK_HOME 或 local.properties 中的 NDK 变量以移除此警告。
项目 ‘:app’ 中的配置 ‘compile’ 已弃用。请改用“实施”。
失败:构建失败,出现异常。
- 出了什么问题:配置项目“:app”时出现问题。
java.lang.NullPointerException(无错误信息)
尝试:使用 –info 或 –debug 选项运行以获得更多日志输出。
异常是:org.gradle.api.ProjectConfigurationException:配置项目“:app”时出现问题。在 org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:87) 在 org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:82) 在 org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure (LifecycleProjectEvaluator.java:69) 在 org.gradle.configuration.project.LifecycleProjectEvaluator.access\(100(LifecycleProjectEvaluator.java:33) 在 org.gradle.configuration.project.LifecycleProjectEvaluator\)ConfigureProject.run(LifecycleProjectEvaluator.java:103) 在 org .gradle.internal.progress.DefaultBuildOperationExecutor\(RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor\)RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor .execute(DefaultBuildOperationExecutor.java:197) 在 org.gradle.internal.progress.Defaul tBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)在 org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:49)在 org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:651)在 org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:133) 在 org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:35) 在 org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator .java:62) 在 org.gradle.execution.TaskSelector.getSelection(TaskSelector.java:100) 在 org.gradle.execution.TaskSelector.getSelection(TaskSelector.java:81) 在 org.gradle.execution.commandline.CommandLineTaskParser。 parseTasks(CommandLineTaskParser.java:42)在org.gradle.execution.TaskNameResolvingBuildConfigurationAction.configure(TaskNameResolvingBuildConfigurationAction.java:44)在org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfi gurationActionExecuter.java:48) 在 org.gradle.execution.DefaultBuildConfigurationActionExecuter.access\(000(DefaultBuildConfigurationActionExecuter.java:25) 在 org.gradle.execution.DefaultBuildConfigurationActionExecuter\)1.proceed(DefaultBuildConfigurationActionExecuter.java:54) 在 org.gradle.execution.DefaultTasksExecutionsBuild .configure(DefaultTasksBuildExecutionAction.java:44)在org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)在org.gradle.execution.DefaultBuildConfigurationActionExecuter.access\(000(DefaultBuildConfigurationActionExecuter.java:25)在org.gradle.execution .DefaultBuildConfigurationActionExecuter\)1.proceed(DefaultBuildConfigurationActionExecuter.java:54)在org.gradle.execution.ExcludedTaskFilteringBuildConfigurationAction.configure(ExcludedTaskFilteringBuildConfigurationAction.java:47)在org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionEx ecuter.java:48) 在 org.gradle.execution.DefaultBuildConfigurationActionExecuter.select(DefaultBuildConfigurationActionExecuter.java:36) 在 org.gradle.initialization.DefaultGradleLauncher\(CalculateTaskGraph.run(DefaultGradleLauncher.java:265) 在 org.gradle.internal.progress .DefaultBuildOperationExecutor\)RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)在 org.gradle.internal.progress.DefaultBuildOperationExecutor\(RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)在 org.gradle.internal.progress.DefaultBuildOperationExecutor.executorExecute(DefaultBuildOperationExecutor.executorExecute(默认:197) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107) 在 org.gradle.initialization.DefaultGradleLauncher.constructTaskGraph(DefaultGradleLauncher.java:173) 在 org.gradle.initialization.DefaultGradleLauncher.doBuildStages( DefaultGradleLauncher.java:128) 在 org.gradle.initialization.DefaultGradleLauncher.executeTasks(D efaultGradleLauncher.java:107) 在 org.gradle.internal.invocation.GradleBuildController\)1.call(GradleBuildController.java:78) 在 org.gradle.internal.invocation.GradleBuildController\(1.call(GradleBuildController.java:75) 在 org.gradle .internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152) 在 org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:100) 在 org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java :75) 在 org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:53) 在 org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) 在 org.gradle。 launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) 在 org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32) 在 org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner\)1.run(RunAsBuildOperationBui ldActionRunner.java:43) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor\(RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor\)RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) 在 org .gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)在 org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner .java:40) 在 org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:45) 在 org.gradle。 launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:29)在 org.gradle.launcher.exec.BuildTreeScopeBuildA org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)处的 org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter).java:71 处执行(BuildTreeScopeBuildActionExecuter.java:39)在 org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:45) 在 org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:51) 在 org.gradle.tooling.internal .provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:32)在 org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)在 org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.executeBuilder(GradleExecuter .java:25) 在 org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(Parallel ismConfigurationBuildActionExecuter.java:43) 在 org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29) 在 org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter) 在 orvag. .gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:29)在org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)在org.intergradle.tooling. .SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:42)在org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:58)在org.gradle.tooling.internal.provider.SetupLoggingActionExecuterLoggingAexecute(设置:33) 在 org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(E xecuteBuild.java:67) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java: 120) 在 org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org .gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)在 org.gradle.launcher .daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)在 org.gradle.launcher.daemon.server .exec.ForwardClientInput\(2.call(ForwardClientInput.java:74) 在 org.gradle.launcher.daemon.server.exec.F orwardClientInput\)2.call(ForwardClientInput.java:72) 在 org.gradle.util.Swapper.swap(Swapper.java:38) 在 org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72) ) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) 在 org。 gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62) 在 org.gradle.launcher。 daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server。 exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 在 org.grad le.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy\(1.run(StartBuildOrRespondWithBusy.java:50) 在 org.gradle.launcher .daemon.server.DaemonStateCoordinator\)1.run(DaemonStateCoordinator.java:297) 在 org.gradle.internal.concurrent.ExecutorPolicy\(CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) 在 org.gradle.internal.concurrent.ManagedExecutorImpl\)1.run (ManagedExecutorImpl.java:46) 在 org.gradle.internal.concurrent.ThreadFactoryImpl\(ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) 引起:java.lang.NullPointerException 在 com.google.common.base.Preconditions.checkNotNull(Preconditions .java:782) 在 com.android.build.gradle.internal.ndk.NdkHandler.getPlatformVersion(NdkHandler.java:158) 在 com.android.build.gradle.internal.ndk.NdkHandler.supports64Bits(NdkHandler.java:331) ) 在 com.android.build.gradle.internal.ndk.NdkHandler.getSupportedAbis(NdkHandler.java:397) 在 co m.android.build.gradle.tasks.ExternalNativeJsonGenerator.create(ExternalNativeJsonGenerator.java:609) 在 com.android.build.gradle.internal.TaskManager.createExternalNativeBuildJsonGenerators(TaskManager.java:1532) 在 com.android.build.gradle。 internal.ApplicationTaskManager.lambda\)createTasksForVariantScope\(10(ApplicationTaskManager.java:205) 在 com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81) 在 com.android.build.gradle.internal.ApplicationTaskManager.createTasksForVariantScope(ApplicationTaskManager .java:200) 在 com.android.build.gradle.internal.VariantManager.createTasksForVariantData(VariantManager.java:523) 在 com.android.build.gradle.internal.VariantManager.lambda\)createAndroidTasks\(1(VariantManager.java:338)在 com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81) 在 com.android.build.gradle.internal.VariantManager.createAndroidTasks(VariantManager.java:334) 在 com.android.build.gradle.BasePlugin .lambda\)createAndroidTasks\(5(BasePlugin. java:627) 在 com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81) 在 com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:622) 在 com.android.build.gradle .BasePlugin.lambda\)3(BasePlugin.java:549) 在 com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81) 在 com.android.build.gradle.BasePlugin.lambda\(createTasks\)4(BasePlugin .java:545) 在 org.gradle.internal.event.BroadcastDispatch\(ActionInvocationHandler.dispatch(BroadcastDispatch.java:91) 在 org.gradle.internal.event.BroadcastDispatch\)ActionInvocationHandler.dispatch(BroadcastDispatch.java:80) 在 org. gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42) 在 org.gradle.internal.event.BroadcastDispatch\(SingletonDispatch.dispatch(BroadcastDispatch.java:230) 在 org.gradle.internal.event.BroadcastDispatch\)SingletonDispatch。调度(BroadcastDispatch.java:149)在 org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDisp atch.java:58) 在 org.gradle.internal.event.BroadcastDispatch\(CompositeDispatch.dispatch(BroadcastDispatch.java:324) 在 org.gradle.internal.event.BroadcastDispatch\)CompositeDispatch.dispatch(BroadcastDispatch.java:234) 在 org .gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140) 在 org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37) 在 org.gradle.internal.dispatch.ProxyDispatchAdapter\(DispatchingInvocationHandler.invoke (ProxyDispatchAdapter.java:93) 在 com.sun.proxy.\)Proxy23.afterEvaluate(Unknown Source) 在 org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:75) … 95 更多
在 https://help.gradle.org 获得更多帮助
3 秒内构建失败
build.gradle(项目)
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-beta2'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
build.gradle(应用程序):
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion '26.0.1'
defaultConfig {
applicationId 'org.tensorflow.demo'
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName '1.0'
externalNativeBuild {
cmake {
cppFlags ""
}
}
ndk {
abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
}
dependencies {
compile 'org.tensorflow:tensorflow-android:1.3.0'
}
安卓工作室:2.3.3
原文由 ishandutta2007 发布,翻译遵循 CC BY-SA 4.0 许可协议
这可能是因为 Android Studio 会自动下载最新版本的 NDK,它没有
platforms
目录(不知道为什么!如果有人能澄清这一点就太棒了)。这对我有用。使用 SDK 管理器。这是 Android Studio 右上角的图标,看起来像这样
.转到 SDK 工具选项卡。在右下角,启用显示包详细信息并安装 NDK 版本 20.0.5594570(您可以删除 Android Studio 自动安装的较新版本以节省空间)。
请注意,NDK 将安装在 Android SDK Location 中显示的位置。对我来说,设置为
/home/<username>/.local/android-sdk
。这意味着我可以在/home/<username>/.local/android-sdk/ndk/20.0.5594570/
找到 NDK点击应用,完成后转到名为
local.properties
的文件并添加它。将路径调整为您安装 NDK 的位置。