Ошибка ndk-gdb: устройство не поддерживает целевые CPU CPU ABI

Попытка запустить ndk-gdb и получить эту ошибку:

Путь установки Android NDK: / Библиотека / 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 ABIs: armeabi-v7a armeabi
ОШИБКА. Устройство не поддерживает целевые CPU ABI приложения.
Устройство поддерживает: armeabi-v7a armeabi
Поддержка пакетов: Android NDK:

18-я строка в jni / Android.mk – вызов модуля импорта.

Что это значит и как его исправить?

Приложение отлаживается в соответствии с документацией ndk. Я использую Mac. Я могу создать и запустить приложение, поэтому скрипт сборки должен быть в порядке.


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 CPU ABI"

У меня такая же проблема. Я совершенно уверен, что это ошибка в сценарии core/build-local.mk . По крайней мере, сообщение об ошибке не имеет смысла.

Я исправил это:

 export NDK_MODULE_PATH=path_to_look_for_modules 

Где path_to_look_for_modules должен быть родительским каталогом вашего модуля, объявленным в Android.mk. То есть, если у вас /myproject/mylibs/otherlib экспортируется путь /myproject/mylibs

Если у вас есть несколько путей, как обычно:

 export NDK_MODULE_PATH=path1:path2:path3 

Если вы создаете приложение для 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. Я принимаю сообщение об ошибке, которое вы тестируете на устройстве с другим типом процессора, чем те, для которых вы создали приложение.

Полезная информация о сторонних библиотеках

Возможная проблема с makefile или средой

Экспорт NDK_PROJECT_PATH = [Путь]

Где [Path] – родительский каталог «jni», который, в свою очередь, содержит ваш код NDK.

Вы можете «столкнуться» с этой проблемой, если ваш код NDK (jni-каталог) находится отдельно от вашего Java-кода Android.

Общим решением этой проблемы является включение этой строки в ваш Application.mk.

 APP_ABI := armeabi-v7a 

Замените armeabi-v7a соответствующим API в соответствии с линией Device supports . Это гарантирует, что ваше приложение будет построено для правильной платформы и что ndk-gdb сможет его найти.