Android Studio ndk示例构建错误

时间:2014-12-16 05:48:56

标签: android android-ndk

我是新手使用ndk并试图使用android ndk10d文件夹中的一些示例项目。例如hello-jni示例项目。我一直收到这个错误:

Error:Execution failed for task ':app:compileDebugNdk'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    C:\Users\Jonathon\android-ndk-r10d\ndk-build.cmd NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\Users\Jonathon\AndroidStudioProjects\hello-jni2\app\build\intermediates\ndk\debug\Android.mk APP_PLATFORM=android-21 NDK_OUT=C:\Users\Jonathon\AndroidStudioProjects\hello-jni2\app\build\intermediates\ndk\debug\obj NDK_LIBS_OUT=C:\Users\Jonathon\AndroidStudioProjects\hello-jni2\app\build\intermediates\ndk\debug\lib APP_ABI=all

错误代码:2输出:

make.exe: *** No rule to make target `C:\Users\Jonathon\AndroidStudioProjects\hello-jni2\app\build\intermediates\ndk\debug\obj/local/arm64-v8a/objs/hello-jni/C_\Users\Jonathon\AndroidStudioProjects\hello-jni2\app\src\main\jni', needed by `C:\Users\Jonathon\AndroidStudioProjects\hello-jni2\app\build\intermediates\ndk\debug\obj/local/arm64-v8a/objs/hello-jni/C_\Users\Jonathon\AndroidStudioProjects\hello-jni2\app\src\main\jni\hello-jni.o'.  Stop.

我已经检查了文件:ndk-build.cmd确实在指定的位置。当我尝试打开它时,命令提示符说它找不到应用程序项目目录。请为其定义NDK_PROJECT_PATH变量

我重新安装并更新了我的整个环境,从 0.8.9到android studio 0.9.9 现在1.01 ,我得到了同样的错误。它似乎无法找到文件或文件目录,这必定意味着我的配置不对,但我无法确定如何解决它。

local.properties

sdk.dir=C\:\\Users\\Jonathon\\AppData\\Local\\Android\\sdk
ndk.dir=C\:\\Users\\Jonathon\\android-ndk-r10d

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := hello-jni
LOCAL_SRC_FILES := hello-jni.c

include $(BUILD_SHARED_LIBRARY)

3 个答案:

答案 0 :(得分:3)

观看此视频,了解如何使用Android studio构建简单的NDK项目 https://www.youtube.com/watch?v=kFtxo7rr2HQ&list=UUkbLy9aj5IBXfS6WqLy5Qmw

或者,您也可以下载Android Studio的NDK插件附带的英特尔原生开发者体验工具

答案 1 :(得分:2)

您可以删除Android.mk文件:它会被忽略,因为您的gradle配置( build.gradle 文件)会动态生成一个新文件。您可以从我在NDK support in Android Studio的文章中获得有关此内容的更多信息。

您遇到的错误就是这个:https://code.google.com/p/android/issues/detail?id=66937&

一个简单的解决方法是在 hello-jni.c 旁边创建一个空的.c文件。

答案 2 :(得分:1)

如果您只有一个.c(或.cpp)文件,则添加一个虚拟.c(或.cpp)文件,它可以正常工作。