Wessel van der Linden
Wessel van der Linden

Reputation: 2632

NDK can't find the application directory

When running the ndk-build command I get the following error:

Android NDK: Could not find application project directory !    
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.

The contents of my Android.mk file:

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)

Adding the following line doesn't help:

NDK_PROJECT_PATH = C:/Users/Wessel/Dropbox/workspace/eclipse/NativeQ

Upvotes: 69

Views: 107306

Answers (11)

Vettiyanakan
Vettiyanakan

Reputation: 8520

-C worked for me.

enter image description here

You can also use the mac terminal to do this.

Upvotes: 4

Yuchen
Yuchen

Reputation: 33156

This is what I use, cd into the project directory and do:

ndk-build NDK_PROJECT_PATH=.

enter image description here

Upvotes: 14

Kirtikumar A.
Kirtikumar A.

Reputation: 4204

Follow Below steps:

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

you should see something like

${workspace_loc:/[Your Project_Name]}

Done!!

Upvotes: 4

NickUnuchek
NickUnuchek

Reputation: 12897

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

Upvotes: 18

Sogartar
Sogartar

Reputation: 2175

You need to specify 3 things.

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

These are needed to override the default values of the build script, which expects things to be in the jni folder.

When calling ndk-build use

ndk-build NDK_PROJECT_PATH=/path/to/proj NDK_APPLICATION_MK=/path/to/Application.mk

In Application.mk add

APP_BUILD_SCRIPT := /path/to/Android.mk

Upvotes: 18

Illegal Argument
Illegal Argument

Reputation: 10358

This worked for me. No environment variables and no setups. Go to the root directory where you unzipped ndk on command line and run ndk-build command:

ndk-build NDK_PROJECT_PATH=path to your project

A sample would look like this in my dev machine:

 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

Upvotes: 3

tonylo
tonylo

Reputation: 3352

I haven't found a single answer which is satisfactory for me, perhaps it depends whether you're trying to build an existing application, create a new one, or perhaps you are porting some existing native app. These guidelines work with android-ndk-r9b but should work with the last few releases

The makefile build-local.mk used by ndk-build will make some guesses about the location of the application makefile.

By default it seems the NDK is oriented towards having you stow your NDK application Application.mk and Android.mk files under a sub-directory called jni. This works nicely, and you can just use the command line:

$ ndk-build

If you don't want to have a jni sub-directory, for example, perhaps you're porting a linux command-line tool to Android, the following maybe appropriate for you:

Create an empty AndroidManifest.xml file

Now create an Application.mk file with the following contents:

APP_BUILD_SCRIPT := Android.mk

Then create an Android.mk file, for example:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := foo.c
LOCAL_MODULE := foo
include $(BUILD_EXECUTABLE)

To build the application use:

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

Upvotes: 20

Sinh Ho
Sinh Ho

Reputation: 430

You need to follow steps below:

1.Go to folder containing Android.mk

2.Assign the android-ndk path to $NDK_PROJECT_PATH. eg: export NDK_PROJECT_PATH =/home/android-ndk-r8b.

3.Add NDK to $PATH. eg: export PATH=$PATH:/home/android-ndk-r8b.

Upvotes: 2

colordancer
colordancer

Reputation: 182

Set your ndk builder's working directory could solve your problem as I got the same problem and solved it in this way.

Path: Project Properties -> Builders -> -> Main -> Working Directory

Upvotes: 1

Sachini Samarasinghe
Sachini Samarasinghe

Reputation: 1111

You can use the following command

ndk-build -C your_project_path

Hope this will answer your question.

Upvotes: 30

gipi
gipi

Reputation: 2515

NDK_PROJECT_PATH is an environment variable so you don't have to include in the Android.mk file. Is nkd-build launched in the project directory?

For more info read the docs in docs/HOWTO.html in the NDK folder where I read

Starting with NDK r4, you can simply place the file under $PROJECT/jni/ and launch the 'ndk-build' script from your project tree.

If you want to use 'ndk-build' but place the file to a different location, use a GNU Make variable override as:

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

Upvotes: 27

Related Questions