Android ndk NDK can';找不到应用程序目录

Android ndk NDK can';找不到应用程序目录,android-ndk,makefile,Android Ndk,Makefile,运行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 := F

运行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
是一个环境变量,因此不必包含在
Android.mk
文件中。
nkd build
是否在项目目录中启动

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

从NDKR4开始,您可以简单地将文件放在$PROJECT/jni下/ 并从项目树中启动“ndk构建”脚本

如果要使用“ndk build”,但将文件放置到其他位置, 使用GNU Make变量替代,如下所示:

ndk-build NDK_APPLICATION_MK=/path/to/your/Application.mk

您可以使用以下命令

ndk-build -C your_project_path

希望这能回答您的问题。

设置ndk生成器的工作目录可以解决您的问题,因为我也遇到了同样的问题,并以这种方式解决了它

路径:Project Properties->Builders->->Main->Working Directory

遵循以下步骤:

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

完成

您需要遵循以下步骤:

1.转到包含Android.mk的文件夹

2.将android ndk路径分配给$ndk_项目_路径。例如:导出NDK_项目路径=/home/android-NDK-r8b


3.将NDK添加到$PATH。例如:export PATH=$PATH:/home/android-ndk-r8b。

我还没有找到一个令我满意的答案,这可能取决于您是在尝试构建现有应用程序、创建新应用程序,还是在移植一些现有的本机应用程序。这些准则适用于android-ndk-r9b,但应适用于最近几个版本

ndk build使用的makefile build-local.mk将猜测应用程序makefile的位置

默认情况下,NDK的目标似乎是让您将NDK应用程序
application.mk
Android.mk
文件存放在名为
jni
的子目录下。这很好地工作,您只需使用命令行:

$ ndk-build
例如,如果您不想拥有
jni
子目录,可能您正在将linux命令行工具移植到Android,以下内容可能适合您:

创建一个空的
AndroidManifest.xml
文件

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

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

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := foo.c
LOCAL_MODULE := foo
include $(BUILD_EXECUTABLE)
要构建应用程序,请使用:

$ ndk-build NDK_APPLICATION_MK=`pwd`/Application.mk

这对我有用。没有环境变量,也没有设置。转到在命令行上解压缩ndk的根目录,然后运行ndk build命令:

ndk build ndk_PROJECT_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:\adt-bundle-windows-x86-20140321\android-ndk-r9d>ndk build ndk_PROJECT\u PATH=D:/workspace/naruto
Android NDK:警告:应用程序平台Android-19比D:/workspace/naruto/AndroidManifest.xml中9的Android:minSdkVersi大
[armeabi]编译thumb:ndkfoo libs/armeabi/libndkfoo.so

您需要指定三件事

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
这些都是重写构建脚本的默认值所必需的,构建脚本期望内容位于jni文件夹中

调用ndk build use时

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=.

-C
为我工作


你也可以使用mac终端来实现这一点。

问题是我只有C源文件,没有Android Java项目。解决方案是将所有文件放在一个名为“jni”的文件夹中,然后运行ndk build命令。终于成功了!但是感谢您的快速回答:)是的,在运行ndk build命令时,一点指向包含Application.mk的目录是至关重要的。我没有创建所有这些文件,而是在命令行上使用了
ndk build ndk\u PROJECT\u PATH=$(pwd)APP\u build\u SCRIPT=$(pwd)/Android.mk
。你的回答帮我弄明白了。我丢失了一个“jni”文件夹。这是一个很好的解决方案。顺便说一句,海军上将的捷径奏效了…直到我知道定义APP_STL的唯一方法是Application.mk。由于某些原因,无法在Android.mk中定义APP_STL。因此,tonylo的解决方案就是我最终使用的。这是最好的答案,因为它涉及到了根本问题:将您的Android.mk放在jni目录中。我需要在哪里调用此命令???$ndk build ndk_APPLICATION_MK=
pwd
/APPLICATION.MK也有同样的问题,只需将
导出ANDROID_ndk_HOME=[PATH to MY ndk FOLDER]
添加到我的
.bash_profile
。之后,我可以从我的项目文件夹中运行该命令。要使用ndk build生成源代码,则源代码必须位于jni文件夹下,因为ndk build as default set$LOCAL\u PATH/jni是ndk\u project\u PATH。如果您想更改NDK_项目_路径,请轻松使用NDK build NDK_项目_路径=$(pwd)作为示例。执行此操作,并将您的文件放在名为jni的子文件夹中。我需要在哪里编写此文件?@SergBurlaka文件夹具有“Application.mk”。您应该选择NDK构建的路径,我认为文件夹并不重要。我喜欢此方法。它对我有用。创建NDK_PROJECT_PATH环境变量至少减少了一步。您好,不幸的是,我的NDK bundle不包含任何名为NDK build的文件夹,对此有何建议?
ndk-build NDK_PROJECT_PATH=.