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:
- ¿Cómo depurar un ejecutable de Dalvik en Android con GDB?
- run-as El paquete 'abc' es desconocido - Galaxy S4 Jellybean o Android 4.3
- Android NDK encontrar vínculo dinámico: incapaz de depurar la biblioteca
- Android / GDB - Dolor de cabeza - no puede encontrar símbolos de depuración
- Android Native debug (ndk-gdb) en HTC Desire: run-as defecto?
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
- Error de depuración ADT20 NDK
- Depuración nativa de Android, bibliotecas ndk-gdb no encontradas
- Ejecución de ndk-gdb con error de paquete no encontrado en el teléfono Motorola
- Android NDK + GDB
- No se puede depurar con gdb bajo Android y NDK, iniciar Gdb se bloquea la aplicación
- Gdb Error de entrada / salida de depuración remota a Android
- ¿Dónde obtener el binario completo de gdb para Android?
- Android ndk-gdb no carga símbolos
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.
- La mayoría de las resoluciones de pantalla populares entre las tabletas Android y los smarthphones
- JNI- java.lang.UnsatisfiedLinkError: Método nativo no encontrado