NDK找不到应用程序目录

Wes*_*den 65 makefile android-ndk

运行ndk-build命令时,出现以下错误:

Android NDK: Could not find application project directory !    
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
Run Code Online (Sandbox Code Playgroud)

我的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)
Run Code Online (Sandbox Code Playgroud)

添加以下行没有帮助:

NDK_PROJECT_PATH = C:/Users/Wessel/Dropbox/workspace/eclipse/NativeQ
Run Code Online (Sandbox Code Playgroud)

Sac*_*ghe 27

您可以使用以下命令

ndk-build -C your_project_path
Run Code Online (Sandbox Code Playgroud)

希望这会回答你的问题.


gip*_*ipi 26

NDK_PROJECT_PATH是一个环境变量,因此您不必包含在Android.mk文件中.是nkd-build在项目目录中启动的?

有关更多信息,请阅读docs/HOWTO.html我阅读的NDK文件夹中的文档

从NDK r4开始,您只需将文件放在$ PROJECT/jni /下,然后从项目树中启动'ndk-build'脚本.

如果要使用'ndk-build'但将文件放在其他位置,请使用GNU Make变量覆盖:

ndk-build NDK_APPLICATION_MK=/path/to/your/Application.mk
Run Code Online (Sandbox Code Playgroud)

  • 问题是我只有C源文件,没有Android Java项目.解决方案是将所有文件放在名为"jni"的文件夹中,然后运行ndk-build命令.它终于奏效了!但谢谢你的快速回答:) (6认同)

ton*_*ylo 19

我没有找到一个令我满意的答案,也许取决于你是在尝试构建一个现有的应用程序,创建一个新的应用程序,还是你正在移植一些现有的本机应用程序.这些指南适用于android-ndk-r9b,但应该适用于最后几个版本

ndk-build使用的makefile build-local.mk将对应用程序makefile的位置进行一些猜测.

默认情况下,NDK似乎是让您将NDK应用程序Application.mkAndroid.mk文件存放在名为的子目录下jni.这很好用,你可以使用命令行:

$ ndk-build
Run Code Online (Sandbox Code Playgroud)

例如,如果您不想拥有jni子目录,也许您正在将Linux命令行工具移植到Android,则以下内容可能适合您:

创建一个空AndroidManifest.xml文件

现在创建一个Application.mk包含以下内容的文件:

APP_BUILD_SCRIPT := Android.mk
Run Code Online (Sandbox Code Playgroud)

然后创建一个Android.mk文件,例如:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := foo.c
LOCAL_MODULE := foo
include $(BUILD_EXECUTABLE)
Run Code Online (Sandbox Code Playgroud)

要构建应用程序,请使用:

$ ndk-build NDK_APPLICATION_MK=`pwd`/Application.mk
Run Code Online (Sandbox Code Playgroud)

  • 我没有创建所有这些文件,而是在命令行上使用`ndk-build NDK_PROJECT_PATH = $(pwd)APP_BUILD_SCRIPT = $(pwd)/ Android.mk`.你的回答帮我解决了这个问题. (10认同)

Nic*_*hek 15

ndk-build NDK_APPLICATION_MK=path\to\your\src\main\jni\Application.mk NDK_PROJECT_PATH=path\to\your\module\src\main
Run Code Online (Sandbox Code Playgroud)


Sog*_*tar 14

你需要指定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
Run Code Online (Sandbox Code Playgroud)

这些是覆盖构建脚本的默认值所需要的,构建脚本期望事物位于jni文件夹中.

在调用ndk-build时使用

ndk-build NDK_PROJECT_PATH=/path/to/proj NDK_APPLICATION_MK=/path/to/Application.mk
Run Code Online (Sandbox Code Playgroud)

在Application.mk中添加

APP_BUILD_SCRIPT := /path/to/Android.mk
Run Code Online (Sandbox Code Playgroud)


Yuc*_*ong 11

这是我使用的,cd进入项目目录并执行:

ndk-build NDK_PROJECT_PATH=.
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述