Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Depuración de Android NDK, bajo windows

Estoy portando una aplicación C compleja a Android, como una biblioteca de SO, envuelta con fina capa java. Después de pocas horas de molestia, tengo el código de compilación en Android, pero por supuesto, la aplicación se bloquea 🙁

Después de mirar alrededor, entiendo que la única manera de depurar la aplicación C en Android es por gdb. Ya que no tengo mucha experiencia con gdb, cualquiera por ahí puede compartir algunas ideas?

¿Alguien tiene un tutorial para gdb bajo windows :)?

Gracias

  • Android 5.1.1 y superior - getRunningAppProcesses () sólo devuelve mi paquete de aplicaciones
  • Letra de texto en Android
  • RunOnUiThread (new Runnable () {}) no está definido para el tipo new Thread () {}
  • Disposición personalizada de Android - onDraw () nunca se llama
  • ¿Hay un emulador alternativo de Android para Visual Studio en Windows 10?
  • Android studio no renderizado vista previa del diseño
  • Códigos de ejemplo para Android Programación Bluetooth
  • Desplazamiento de ListViews juntos
  • One Solution collect form web for “Depuración de Android NDK, bajo windows”

    Para una versión más reciente de NDK (estoy utilizando r7c), puede construir la versión de depuración por

    1. Add android:debuggable="true" flag a la etiqueta <Application> en AndroidManifest.xml
    2. ndk-build con NDK_DEBUG=1 (NDK_DEBUG no es necesario si ejecuta ndk-build con shell unix)

    En Windows, las cosas se ponen un poco difíciles porque para usar ndk-gdb , todavía necesita bash (o cygwin) como de NDK r7c, pero ndk-build ejecutándose en cygwin bash se ejecutará en el problema de permiso si alguna vez utiliza cualquiera de los pre- Biblioteca estática construida

    Mi solución en la máquina de Windows es

    1. Add android:debuggable="true" flag para <application etiqueta de la <application en AndroidManifest.xml (igual que anteriormente)
    2. En cmd (prompt de comandos de Windows): invoca ndk-build con NDK_DEBUG=1
    3. En cygwin bash: ejecutar ndk-gdb

    Para la investigación inicial rápida de la biblioteca nativa así, crear una actividad simple con un botón para activar la función de entrada de la biblioteca y loadLibrary en la actividad como:

     class MyActivity extends Activity { static { System.loadLibrary("mylibrary"); } /* other functions like onCreate, etc... */ public native void libfunc(); public void onClick(View v){ libfunc(); } } 

    Así que cuando gdb inicia, la biblioteca en cuestión está realmente cargada, pero todavía puede tener tiempo para establecer puntos de interrupción, etc. antes de que el programa se bloquee; Cuando termine de configurar el depurador, en el indicador (gdb) , escriba continue (o simplemente ' c '), luego presione el botón para iniciar el programa de bloqueo y depuración feliz …

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.