NDK找不到应用程序目录
运行ndk-build命令时出现以下错误:
Android NDK: Could not find application project directory ! Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
我的Android.mk文件的内容:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := FRE LOCAL_SRC_FILES := FlashRuntimeExtensions.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := NativeQCAR LOCAL_SRC_FILES := main.c LOCAL_SHARED_LIBRARIES := FRE include $(BUILD_SHARED_LIBRARY)
添加下面的行不起作用:
NDK_PROJECT_PATH = C:/Users/Wessel/Dropbox/workspace/eclipse/NativeQ
NDK_PROJECT_PATH
是一个环境variables,所以你不必包含在Android.mk
文件中。 在项目目录中启动了nkd-build
吗?
有关更多信息,请阅读我读取的NDK文件夹中docs/HOWTO.html
从NDK r4开始,您可以简单地将文件放在$ PROJECT / jni /下,并从项目树中启动“ndk-build”脚本。
如果你想使用'ndk-build',但是把文件放在不同的位置,可以使用GNU Makevariables覆盖:
ndk-build NDK_APPLICATION_MK=/path/to/your/Application.mk
您可以使用以下命令
ndk-build -C your_project_path
希望这会回答你的问题。
我还没有find一个令我满意的答案,这可能取决于您是在尝试构build一个现有的应用程序,创build一个新的应用程序,还是正在移植某个现有的本机应用程序。 这些指导方针与android-ndk-r9b一起使用,但应该与最近的几个版本一起工作
ndk-build使用的makefile build-local.mk会对应用程序makefile的位置做一些猜测。
默认情况下,NDK的目标是让您将NDK应用程序Application.mk
和Android.mk
文件存储在名为jni
的子目录下。 这很好,你可以使用命令行:
$ ndk-build
如果你不想拥有一个jni
子目录,例如,也许你正在将一个linux命令行工具移植到Android上,那么以下内容可能适合你:
创build一个空的AndroidManifest.xml
文件
现在使用以下内容创build一个Application.mk
文件:
APP_BUILD_SCRIPT := Android.mk
然后创build一个Android.mk
文件,例如:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := foo.c LOCAL_MODULE := foo include $(BUILD_EXECUTABLE)
构build应用程序使用:
$ ndk-build NDK_APPLICATION_MK=`pwd`/Application.mk
ndk-build NDK_APPLICATION_MK=path\to\your\src\main\jni\Application.mk NDK_PROJECT_PATH=path\to\your\module\src\main
你需要指定3件事情。
NDK_PROJECT_PATH - the location of your project NDK_APPLICATION_MK - the path of the Application.mk file APP_BUILD_SCRIPT - the path to the Android.mk file
需要这些来覆盖构build脚本的默认值,这些脚本需要在jni文件夹中。
当调用ndk-build使用
ndk-build NDK_PROJECT_PATH=/path/to/proj NDK_APPLICATION_MK=/path/to/Application.mk
在Application.mk中添加
APP_BUILD_SCRIPT := /path/to/Android.mk
这是我使用的, cd
进入项目目录,并执行:
ndk-build NDK_PROJECT_PATH=.
遵循以下步骤:
1)Right on your project 2)Go to properties 3)Go to C/C++ Build 4)Go to Builder Settings 5)Go to Build Location Add build directory 6)Click on Workspace 7)Select your project folder
你应该看到类似的东西
${workspace_loc:/[Your Project_Name]}
完成!
这对我有效。 没有环境variables,也没有设置。 去命令行解压ndk的根目录下运行ndk-build命令:
ndk-build NDK_PROJECT_PATH =您的项目的path
在我的开发机器中,示例将如下所示:
C:\adt-bundle-windows-x86-20140321\android-ndk-r9d>ndk-build NDK_PROJECT_PATH=D: /workspace/naruto Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersi on 9 in D:/workspace/naruto/AndroidManifest.xml [armeabi] Compile thumb : ndkfoo <= ndkfoo.c [armeabi] SharedLibrary : libndkfoo.so [armeabi] Install : libndkfoo.so => libs/armeabi/libndkfoo.so
-C
为我工作。
您也可以使用macterminal来做到这一点。
您需要遵循以下步骤:
1.转到包含Android.mk的文件夹
2.将android-ndkpath分配给$ NDK_PROJECT_PATH。 例如:export NDK_PROJECT_PATH = / home / android-ndk-r8b。
3.将NDK添加到$ PATH。 例如:export PATH = $ PATH:/ home / android-ndk-r8b。
设置你的ndk生成器的工作目录可以解决你的问题,因为我得到了同样的问题,并以这种方式解决它。
path:项目属性 – >build设者 – > – >主要 – >工作目录