ndk-gdb错误:设备不支持应用程序的目标CPU ABI

试图运行ndk-gdb并得到这个错误:

Android NDK安装path:/ Library / AndroidSDK / ndk /
使用特定的adb命令:/ Library / AndroidSDK / platform-tools / adb
ADB版本发现:Android Debug Bridge版本1.0.31
使用ADB标志:
使用自动检测的项目path:。
find包名:com.dev.project
jni / Android.mk:18:* Android NDK:正在中止。 。 停止。
以应用程序为目标的ABI:Android NDK:
设备API级别:17
设备CPU ABIs:armeabi-v7a armeabi
错误:设备不支持应用程序的目标CPU ABI!
设备支持:armeabi-v7a armeabi
包支持:Android NDK:

jni / Android.mk中的第18行是一个导入模块调用。

这是什么意思,以及如何补救?

应用程序是可debugging的ndk文档。 我正在使用Mac。 我可以构build和运行应用程序,所以构build脚本应该没问题。


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 

Application.mk

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

Solutions Collecting From Web of "ndk-gdb错误:设备不支持应用程序的目标CPU ABI"

我有同样的问题。 我很确定这是一个core/build-local.mk脚本中的错误。 至less错误信息是没有意义的。

我修正了这个问题:

 export NDK_MODULE_PATH=path_to_look_for_modules 

其中path_to_look_for_modules应该是Android.mk中声明的模块的目录。 也就是说,如果你有/myproject/mylibs/otherlib导出path/myproject/mylibs

如果你像往常一样有几条path:

 export NDK_MODULE_PATH=path1:path2:path3 

如果你正在构build一个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代码。 我从错误消息中假设您正在testing的设备具有与您构build应用程序的CPUtypes不同的CPUtypes。

有关第三方库的有用信息

生成文件或环境可能的问题

导出NDK_PROJECT_PATH = [path]

其中[Path]是“jni”目录的父目录,该目录又包含您的NDK代码。

如果您的NDK代码(jni目录)与您的Android Java代码分开定位,则“可能”会面临此问题。

这个问题的一个常见的解决scheme是在你的Application.mk中包含这一行。

 APP_ABI := armeabi-v7a 

根据Device supports行,用相应的APIreplacearmeabi-v7a。 这将确保您的应用程序是为正确的平台而构build的,并且ndk-gdb可以find它。