web-dev-qa-db-ja.com

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
65

次のコマンドを使用できます

ndk-build -C your_project_path

これがあなたの質問に答えることを願っています。

27

NDK_PROJECT_PATHは環境変数なので、Android.mkファイルに含める必要はありません。 nkd-buildはプロジェクトディレクトリで起動されますか?

詳細については、私が読んだNDKフォルダのdocs/HOWTO.htmlのドキュメントを読んでください

NDK r4以降では、ファイルを$ PROJECT/jni /に配置し、プロジェクトツリーから「ndk-build」スクリプトを起動するだけです。

「ndk-build」を使用するが、ファイルを別の場所に配置する場合は、GNUを使用して変数を次のようにオーバーライドします。

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

満足できる単一の答えは見つかりませんでした。おそらく、既存のアプリケーションを構築しようとしているのか、新しいアプリケーションを作成しようとしているのか、または既存のネイティブアプリを移植しようとしているのかによって異なります。これらのガイドラインは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
19
tonylo

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 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
14
Sogartar
ndk-build NDK_APPLICATION_MK=path\to\your\src\main\jni\Application.mk NDK_PROJECT_PATH=path\to\your\module\src\main
14
NickUnuchek

これは私が使用するもので、cdをプロジェクトディレクトリに入れて実行します。

ndk-build NDK_PROJECT_PATH=.

enter image description here

10
Yuchen Zhong

以下の手順に従ってください:

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

できた!!

4
Kirtikumar A.

-Cは私のために働いた。

enter image description here

Mac端末を使用してこれを行うこともできます。

3
Aby Mathew

これは私のために働いた。環境変数もセットアップもありません。コマンドラインで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
3

以下の手順に従う必要があります。

1. Android.mkを含むフォルダーに移動します

2. Android-ndkパスを$ NDK_PROJECT_PATHに割り当てます。例:NDK_PROJECT_PATH =/home/Android-ndk-r8bをエクスポートします。

3. NDKを$ PATHに追加します。例:export PATH = $ PATH:/ home/Android-ndk-r8b。

2
Sinh Ho

同じ問題が発生し、この方法で解決したため、ndkビルダーの作業ディレクトリを設定すると問題が解決する可能性があります。

パス:プロジェクトのプロパティ->ビルダー->->メイン->作業ディレクトリ

0
colordancer