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: Aborting。. 停止。
应用程序针对的 ABI:Android NDK:
设备 API 级别:17
设备 CPU ABI:armeabi-v7a armeabi
错误:设备不支持应用程序的目标 CPU ABI!
设备支持:armeabi-v7a armeabi
包支持:Android NDK:

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

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

应用程序可根据 ndk 文档进行调试。我正在使用 Mac。我可以构建和运行应用程序,所以构建脚本应该没问题。


安卓.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 类型的设备。

关于第三方库的有用信息

makefile 或环境可能存在问题

于 2013-02-25T13:08:04.100 回答
0

导出 NDK_PROJECT_PATH=[路径]

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

如果您的 NDK 代码(jni 目录)与您的 Android java 代码分开放置,您“可能”会遇到此问题。

于 2013-08-10T00:14:50.243 回答
0

此问题的常见解决方案是将此行包含在 Application.mk 中。

APP_ABI := armeabi-v7a

Replace armeabi-v7a by the appropriate API as per the Device supports line. This will ensure that your application is built for the correct platform, and that ndk-gdb can find it.

于 2014-05-25T14:56:20.017 回答