8

ndk-gdb を実行しようとすると、次のエラーが発生します。

Android NDK インストール パス: /Library/AndroidSDK/ndk/
特定の adb コマンドを使用: /Library/AndroidSDK/platform-tools/adb 検出された
ADB バージョン: Android Debug Bridge バージョン 1.0.31
ADB フラグ
を使用: 自動検出されたプロジェクト パスを使用: .
見つかったパッケージ名: com.dev.project
jni/Android.mk:18: * Android NDK: 中止します。. 止まる。
アプリケーションがターゲットとする ABI: Android NDK:
デバイス API レベル: 17
デバイス CPU ABI: armeabi-v7a armeabi
エラー: デバイスはアプリケーションのターゲット CPU ABI をサポートしていません!
デバイスのサポート: armeabi-v7a armeabi
パッケージのサポート: Android NDK:

jni/Android.mk の 18 行目はインポート モジュールの呼び出しです。

それは何を意味し、どのようにそれを修正するのですか?

アプリは ndk ドキュメントに従ってデバッグ可能です。私はマックを使用しています。アプリをビルドして実行できるので、ビルド スクリプトは問題ないはずです。


Android.mk

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := libgl2jni
LOCAL_CFLAGS    := -Werror -Wall -g
LOCAL_CPPFLAGS  := -std=c++11
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../src $(LOCAL_PATH)/../../include $(LOCAL_PATH)/../../../boost

NDK_MODULE_PATH := $(LOCAL_PATH)/../../lib/ndk
LOCAL_SRC_FILES := $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(LOCAL_PATH)/../../src/*/*.cpp))
LOCAL_LDLIBS    := -llog -lGLESv2

LOCAL_STATIC_LIBRARIES := freetype

include $(BUILD_SHARED_LIBRARY)

$(call import-module,otherlib) #commenting this line launches the ndk-gdb, but ndk-build fails

アプリケーション.mk

APP_STL := gnustl_static

#remove for release?
APP_ABI := armeabi armeabi-v7a 
APP_OPTIM := debug
4

4 に答える 4

9

私も同じ問題を抱えていました。core/build-local.mkスクリプトのバグだと確信しています。少なくともエラー メッセージは意味がありません。

私はこれを修正しました:

export NDK_MODULE_PATH=path_to_look_for_modules

Android.mk で宣言されているモジュールのディレクトリはどこpath_to_look_for_modulesにあるべきですか。つまり、パスをエクスポートしている場合/myproject/mylibs/otherlib/myproject/mylibs

いつものように複数のパスがある場合:

export NDK_MODULE_PATH=path1:path2:path3
于 2013-06-06T18:45:43.177 に答える
1

Android アプリを構築していて、いくつかの ndk コードがある場合は、次の行で Application.mk (通常は jni ディレクトリにあります) を追加/変更することで、この問題を解決できる場合があります。

# The ARMv7 is significanly faster due to the use of the hardware FPU
APP_ABI := armeabi armeabi-v7a x86 mips
#APP_ABI := armeabi
APP_PLATFORM := android-10

APP_ABI 行を意味します。これは、ndk コードをコンパイルするターゲット プロセッサを指定しています。エラー メッセージから、アプリをビルドしたものとは異なる cpu タイプのデバイスでテストしていると推測しています。

サードパーティ ライブラリに関する有用な情報

メイクファイルまたは環境に問題がある可能性があります

于 2013-02-25T13:08:04.100 に答える
0

export NDK_PROJECT_PATH=[パス]

ここで、[Path] は「jni」ディレクトリの親であり、NDK コードが含まれています。

NDK コード (jni ディレクトリ) が Android Java コードとは別に配置されている場合、この問題に直面する可能性があります。

于 2013-08-10T00:14:50.243 に答える
0

この問題の一般的な解決策は、この行を Application.mk に含めることです。

APP_ABI := armeabi-v7a

行に従って、armeabi-v7a を適切な API に置き換えますDevice supports。これにより、アプリケーションが正しいプラットフォーム用に構築され、それndk-gdbを見つけることができるようになります。

于 2014-05-25T14:56:20.017 に答える