首页 文章

NDK缺少“平台”目录 . 在尝试 Build 时

提问于
浏览
0

执行任务:[clean]按需配置是一项孵化功能 . NDK缺少“平台”目录 . 如果您使用的是NDK,请验证ndk.dir是否设置为有效的NDK目录 . 它目前设置为/ Users / ishandutta2007 / Library / Android / sdk / ndk-bundle . 如果未使用NDK,请从ANDROID_NDK_HOME或local.properties取消设置NDK变量以删除此警告 . 项目':app'中的配置'compile'已弃用 . 请改用“实施” . FAILURE:构建因异常而失败 . 出了什么问题:配置项目':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)at org .gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)atg.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.api.apject.project.Project.DefaultProject.evaluate的org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:49)(DefaultProject.java:651) org.gradle.api.ini.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)at org.gradle.execution.commandline.CommandLineTaskParser . parseTasks(CommandLineTaskParser.java:42)org.gradle.execution.TaskNameResolvingBuildConfigurationAction.configure(TaskNameResolvingBuildConfigurationAction.java:44)org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfi) gigateActionExecuter.java:48)org.gradle.execution.DefaultBuildConfigurationActionExecuter.access $ 000(DefaultBuildConfigurationActionExecuter.java:25)org.gradle.execution.DefaultBuildConfigurationActionExecuter $ 1.proceed(DefaultBuildConfigurationActionExecuter.java:54)at org.gradle.execution.DefaultTasksBuildExecutionAction org.gradle.execution的org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)org.gradle.execution上的.configure(DefaultTasksBuildExecutionAction.java:44)org.gradle.execution.DefaultBuildConfigurationActionExecuter.access $ 000(DefaultBuildConfigurationActionExecuter.java:25) .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)at 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.initialization.DefaultGradleLauncher.constructTaskGraph(DefaultGradleLauncher.java:173)在org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java :128)处于org.gradle.internal.invocation.GradleBuildController org.gradle.internal.invocation.GradleBuildController $ 1.call(GradleBuildController.java:78)org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:107) $ 1.call(GradleBuildController.java:75)在org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152)在org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:100)在组织.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:75)在org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:53)在org.gradle.laun cher.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(RunAsBuildOperationBuildActionRunner.java:43)org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)org.gradle . org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor . java:107)org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:4 0)org.gradle.launcher.exec上的org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:45)at org.gradle.launcher.exec .inProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:29)org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)at at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:71)在org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:45)在org.gradle.tooling.internal . org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupB)中的provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:51) uildActionExecuter.java:32)org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)at org .gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)at org.gradle.tooling.internal.provider .StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:64)org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:29)at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java) :55)在org.gradle.tooling.internal.provider.SessionFa在org.gradle.tooling.internal.provider.SetupLogingActionExecuter.exe执行(SetupLogingActionExecuter.java:42)org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:)中的ilureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:42): 33)在org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.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的org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37) . landher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)位于org.gradle.launcher.daemon的org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26) . 服务器.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)位于org.gradle.launcher.daemon.server.api的org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34) . daemonCommandExecution.proceed(DaemonCommandExecution.java:120)位于org.gradle.launcher.daemon.serverec.ForwardClientInput $ 2的org.gradle.launcher.daemon.server.exec.ForwardClientInput $ 2.call(ForwardClientInput.java:74) . 在org.gradle.l的org.gradle.util.Swapper.swap(Swapper.java:38)调用(ForwardClientInput.java:72)位于org.gradle.launcher.daemon的org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)的auncher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72) . server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)位于org.gradle.launcher.daemon.server.exec的org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) . 在org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed的org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)中的LogToClient.doBuild(LogToClient.java:62)( DaemonCommandExecution.java:120)org.gradle.launcher.daemon.server.exe .EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java: 36)在org.gradle.launcher的org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) . dagmon.server.exe .StartBuildOrRespondWithBusy $ 1.run(StartBuildOrRespondWithBusy.java:50)org.gradle.launcher.daemon.server.DaemonStateCoordinator $ 1.run(DaemonStateCoordinator.java:297)org.gradle.internal.concurrent.ExecutorPolicy $位于org.gradle.internal.concurrent.ThreadFactoryImpl的org.gradle.internal.concurrent.ManagedExecutorImpl $ 1.run(ManagedExecutorImpl.java:46)中的CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)$ ManagedThreadRunnable.run(ThreadFactoryImpl.java:55 )由com.android.build.gradle.internal.ndk.NdkHandler.getPlatformVersion(NdkHandler.java:158)中的com.google.common.base.Preconditions.checkNotNull(Preconditions.java:782)引起的java.lang.NullPointerException: )com的com.android.build.internal.ndk.NdkHandler.supports64Bits(NdkHandler.java:331)com的com.android.build.gradle.internal.ndk.NdkHandler.getSupportedAbis(NdkHandler.java:397) . com.android上的android.build.gradle.tasks.ExternalNativeJsonGenerator.create(ExternalNativeJsonGenerator.java:609) . build.gradle.internal.TaskManager.createExternalNativeBuildJsonGenerators(TaskManager.java:1532)at com.android.build.internal.ApplicationTaskManager.lambda $ createTasksForVariantScope $ 10(ApplicationTaskManager.java:205)at com.android.builder.profile.ThreadRecorder .record(ThreadRecorder.java:81)位于com.android.build.internal.ApplicationTaskManager.createTasksForVariantScope(ApplicationTaskManager.java:200)的com.android.build.gradle.internal.VariantManager.createTasksForVariantData(VariantManager.java:523) )com.android.build的com.android.build.gradle.internal.VariantManager.lambda $ createAndroidTasks $ 1(VariantManager.java:338)com.android.build的com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81) .gradle.internal.VariantManager.createAndroidTasks(VariantManager.java:334)at com.android.build.BasePlugin.lambda $ createAndroidTasks $ 5(BasePlugin.java:627)at com.android.builder.profile.ThreadRecorder.record( ThreadRecorder.java:81)在com.android.build.gradle.Ba sePlugin.createAndroidTasks(BasePlugin.java:622)at com.android.build.gradle.BasePlugin.lambda $ null $ 3(BasePlugin.java:549)at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81来自org.gradle.internal的org.gradle.internal.event.BroadcastDispatch $ ActionInvocationHandler.dispatch(BroadcastDispatch.java:91)的com.android.build.gradle.BasePlugin.lambda $ createTasks $ 4(BasePlugin.java:545) .event.BroadcastDispatch $ ActionInvocationHandler.dispatch(BroadcastDispatch.java:80)atorg.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)org.gradle.internal.event.BroadcastDispatch $ SingletonDispatch.dispatch(BroadcastDispatch.java:230)at org.gradle.internal.event.BroadcastDispatch $在org.gradle.internal.event.BroadcastDispatch $ CompositeDispatch.dispatch(BroadcastDispatch.java:324)的org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)中的SingletonDispatch.dispatch(BroadcastDispatch.java:149) org.gradle.internal.event.BroadcastDispatch $ CompositeDispatch.dispatch(BroadcastDispatch.java:234)位于org.gradle.internal.event.ListenerBroadcast的org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140) .dispatch(ListenerBroadcast.java:37)位于org.gradle的com.sun.proxy上的org.gradle.internal.dispatch.ProxyDispatchAdapter $ DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) . $ Proxy23.afterEvaluate(未知来源) . configuration.project.LifecycleProjectEva luator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:75)... 95更多在https://help.gradle.org获取更多帮助在3s内 Build 失败

的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(APP):

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'
}

Android Studio:2.3.3

1 回答

  • -2

    按需配置是一项孵化功能 . NDK缺少“平台”目录 .

    如果您使用的是NDK,请确认 ndk.dir 已设置为有效的NDK目录 .

    它目前设置为 C:\Users\MSI\AppData\Local\Android\Sdk\ndk-bundle .

    如果您未使用NDK,请从 ANDROID_NDK_HOMElocal.properties 取消设置 NDK 变量以删除此警告 .

相关问题