Ndk-gdb error: el dispositivo no admite las ABI de CPU de la aplicación

Tratando de ejecutar ndk-gdb y obtener este error:

Camino de instalación de Android NDK: / Library / AndroidSDK / ndk /
Uso del comando adb específico: / Library / AndroidSDK / platform-tools / adb
Versión de ADB encontrada: Android Debug Bridge versión 1.0.31
Utilizar indicadores de ADB:
Uso de la ruta del proyecto detectado automáticamente:.
Nombre del paquete encontrado: com.dev.project
Jni / Android.mk: 18: * Android NDK: Abortar. . Detener.
ABIs objetivo por aplicación: Android NDK:
Device API Level: 17
Dispositivo CPU ABIs: armeabi-v7a armeabi
ERROR: ¡El dispositivo no admite las ABI de la CPU de la aplicación destinada!
Soporte de dispositivos: armeabi-v7a armeabi
Soporte de paquetes: Android NDK:

La 18ª línea en el jni / Android.mk es una llamada al módulo de importación.

¿Qué significa eso y cómo remediarlo?

La aplicación es debugable según la documentación ndk. Estoy usando Mac. Puedo construir y ejecutar la aplicación, por lo que el script de construcción debe estar bien.


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 

Yo tuve el mismo problema. Estoy seguro de que es un error en el script core/build-local.mk . Por lo menos el mensaje de error no es significativo.

He arreglado hacer esto:

 export NDK_MODULE_PATH=path_to_look_for_modules 

Donde path_to_look_for_modules debe ser el directorio padre de tu módulo declarado en Android.mk. Es decir, si tiene /myproject/mylibs/otherlib exportar la ruta de acceso /myproject/mylibs

Si tiene varios caminos, como de costumbre:

 export NDK_MODULE_PATH=path1:path2:path3 

Si está construyendo una aplicación para Android y tiene algún código ndk, puede solucionar este problema agregando / modificando su Application.mk (normalmente en el directorio jni) con la siguiente línea:

 # 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 

Me refiero a la línea APP_ABI. Esto es especificar los procesadores de destino para compilar el código ndk para. Estoy asumiendo del mensaje de error que usted está probando en un dispositivo que tiene un diverso tipo de la CPU que los usted construyó la aplicación para.

Información útil sobre bibliotecas de terceros

Problema posible con makefile o entorno

Export NDK_PROJECT_PATH = [Ruta de acceso]

Donde [Path] es el padre del directorio "jni", que a su vez contiene su código NDK.

Puede "enfrentar" este problema si su código NDK (directorio jni) se encuentra separado de su código java de Android.

Una solución común a este problema es incluir esta línea en su Application.mk.

 APP_ABI := armeabi-v7a 

Reemplace armeabi-v7a por la API apropiada según la línea de Device supports del Device supports . Esto asegurará que su aplicación esté diseñada para la plataforma correcta, y que ndk-gdb pueda encontrarla.

  • Cómo depurar una aplicación en Android con GDBSERVER?
  • Gdb depura el programa nativo (no jni) en android
  • Integración de android ndk ndk-gdb con emacs?
  • No se puede conectar el ndk-gdb a la aplicación android
  • No es capaz de golpear el punto de interrupción en ndk-gdb en Android
  • Depuración código nativo en Android en el * dispositivo * (no emulador)
  • Depuración remota del programa C puro con GDB
  • Cómo depurar la implementación NFC de Android?
  • Depurar código nativo de Android con GDB es dolorosamente lento
  • La salida de gdb remota de Android es dolorosamente lenta
  • Ptrace devuelve -1 en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.