Depuración NDK de Android: armeabi-v7a no funciona
Eclipse / Cygwin
NDK 8c
- Emulador de Android Ubuntu 14.04 no se pudo crear la ventana SDL2 GLX no compatible
- ¿Cómo utilizar "runOnUiThread (runnable)" dentro del método estático?
- El nombre del proyecto no aparece en mi eclipse
- Android AAPT Issue- Al reemplazar la nueva imagen al recurso
- La herramienta zipalign no se encontró en el sdk
Creación de una biblioteca compartida
No puedo conseguir que gdbserver comience más después de cambiar a armeabi-v7a. He buscado en línea durante horas, pero no puedo encontrar un tema que se ocupa específicamente de armeabi-v7a problemas de depuración.
No tengo opción de cambiar a armeabi-v7a debido al uso de una biblioteca de terceros que depende de ello. Sin él, consigo este tipo de errores:
D:\TEMP\ccnnGAqD.s:10427: Error: selected processor does not support Thumb mode `ldrex r6,[r3]' D:\TEMP\ccnnGAqD.s:10429: Error: selected processor does not support Thumb mode `strex r4,r5,[r3]'
Todo funcionaba bien antes con 'armeabi', usando esta configuración: http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-development/
El único cambio que he hecho es agregar esto a Application.mk:
APP_ABI := armeabi-v7a
En la parte inferior de la biblioteca compartida Android.mk agregué esto:
$(info TARGET_ARCH = $(TARGET_ARCH)) $(info TARGET_ARCH_ABI = $(TARGET_ARCH_ABI)) $(info TARGET_ABI = $(TARGET_ABI))
Que da como resultado lo siguiente:
TARGET_ARCH = arm TARGET_ARCH_ABI = armeabi-v7a TARGET_ABI = android-14-armeabi-v7a
He desinstalado la aplicación mediante
adb uninstall com.example.game
AndroidManifest.xml tiene la propiedad android: debuggable = "true".
Hecho un "limpiar todo" en Eclipse, y eliminar manualmente las carpetas ./libs y ./obj. Entonces, las salidas ndk-build a las carpetas correctas (obj / local / armeabi-v7a y libs / armeabi-v7a), y obj / local / armeabi y libs / armeabi no existen.
Sin embargo, esto es lo que sucede cuando ejecuto ndk-gdb:
user@MACHINENAME /cygdrive/e/projects/game $ ndk-gdb-eclipse --force --verbose Android NDK installation path: /cygdrive/e/projects/sdks/android-ndk Using default adb command: /cygdrive/e/projects/sdks/android-sdk/platform-tools/adb ADB version found: Android Debug Bridge version 1.0.31 Using ADB flags: Using auto-detected project path: . Found package name: com.example.game ABIs targetted by application: armeabi Device API Level: 15 Device CPU ABIs: armeabi-v7a armeabi Compatible device ABI: armeabi Using gdb setup init: ./libs/armeabi/gdb.setup Using toolchain prefix: /cygdrive/e/projects/sdks/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi- Using app out directory: ./obj/local/armeabi Found debuggable flag: true ERROR: Could not find gdbserver binary under ./libs/armeabi This usually means you modified your AndroidManifest.xml to set the android:debuggable flag to 'true' but did not rebuild the native binaries. Please call 'ndk-build' to do so, *then* re-install to the device!
Observe las "ABIs dirigidas por aplicación" usando el "armeabi" incorrecto. Aquí está la parte relevante de ndk-gdb:
get_build_var () { if [ -z "$GNUMAKE" ] ; then GNUMAKE=make fi $GNUMAKE --no-print-dir -f $ANDROID_NDK_ROOT/build/core/build-local.mk -C $PROJECT DUMP_$1 | tail -1 } APP_ABIS=`get_build_var APP_ABI` if [ "$APP_ABIS" != "${APP_ABIS%%all*}" ] ; then # replace first "all" with all available ABIs ALL_ABIS=`get_build_var NDK_ALL_ABIS` APP_ABIS_FRONT="${APP_ABIS%%all*}" APP_ABIS_BACK="${APP_ABIS#*all}" APP_ABIS="${APP_ABIS_FRONT}${ALL_ABIS}${APP_ABIS_BACK}" fi log "ABIs targetted by application: $APP_ABIS"
Definí claramente APP_ABI a armeabi-v7a en Application.mk, así que esto es un error en el NDK? ¿O me estoy perdiendo algo?
- Acelerar la creación de aplicaciones para Android: compilador de Java para utilizar varios núcleos de CPU
- Servicios de Google Play que faltan de la carpeta Extras en SDK Manager
- Error al exportar archivo o sistema de archivos con Eclipse (Android)
- Eclipse appcompat-> res-> drawable-xxxhdpi error
- Android INSTALL_FAILED_MISSING_SHARED_LIBRARY
- Android Maven en Eclipse - Creación de una actividad
- Incluir proyecto Java como biblioteca
- Iniciar actividad en un hilo
Tuve el mismo problema. He configurado eclipse siguiendo este artículo: http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-development/ Luego cambio de armeabi a armeabi-v7a. Entonces no pude depurar.
He arreglado este problema:
1) Debe arreglar las carpetas en "Configuraciones de depuración"
- Cambiar la pestaña principal … obj / local / armeabi / app_process a … obj / local / armeabi-v7a / app_process
- La pestaña del depurador cambia … obj / local / armeabi / gdb2.setup a obj / local / armeabi-v7a / gdb2.setup
- Cambia la pestaña del depurador … / toolchains / arm-linux-androideabi-4.4.3 / pre-construido / linux-x86_64 / bin / arm-linux-androideabi-gdb a toolchains / arm-linux-androideabi-4.6 / prebuilt / linux-x86_64 / Bin / arm-linux-androideabi-gdb
2) Puede ser esto es una solución, pero funciona. En "Configuraciones de depuración" -> Depurador-> Bibliotecas compartidas add / obj / local / armeabi-v7a y marque "Cargar símbolos de biblioteca compartida automáticamente"
- Mostrar la selección del año primero en la vista del calendario de Android
- Android, onReceive en BroadCastReceiver se llama varias veces