NDK找不到应用程序目录

时间:2013-01-04 11:46:46

标签: 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 := 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

11 个答案:

答案 0 :(得分:26)

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

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

  

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

     

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

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

答案 1 :(得分:26)

您可以使用以下命令

ndk-build -C your_project_path

希望这会回答你的问题。

答案 2 :(得分:19)

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

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

默认情况下,NDK似乎是让您将NDK应用程序Application.mkAndroid.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

答案 3 :(得分: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

需要覆盖构建脚本的默认值,这些内容需要在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

答案 4 :(得分:14)

ndk-build NDK_APPLICATION_MK=path\to\your\src\main\jni\Application.mk NDK_PROJECT_PATH=path\to\your\module\src\main

答案 5 :(得分:10)

这是我在项目目录中使用cd并执行:

ndk-build NDK_PROJECT_PATH=.

enter image description here

答案 6 :(得分:4)

按照以下步骤操作:

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

完成!!

答案 7 :(得分:3)

这对我有用。没有环境变量也没有设置。转到在命令行解压缩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

答案 8 :(得分:3)

-C为我工作。

enter image description here

您也可以使用mac终端执行此操作。

答案 9 :(得分:2)

您需要按照以下步骤操作:

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

2.将android-ndk路径分配给$ NDK_PROJECT_PATH。例如:export NDK_PROJECT_PATH = / home / android-ndk-r8b。

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

答案 10 :(得分:0)

设置你的ndk builder的工作目录可以解决你的问题,因为我遇到了同样的问题并以这种方式解决了它。

路径:项目属性 - &gt;建设者 - &gt; - &GT;主要 - &gt;工作目录