por una versión más reciente de NDK (estoy usando R7C), se puede construir la versión de depuración
- añadir
android:debuggable="true"
bandera para <Application>
etiqueta en AndroidManifest.xml
- invocar
ndk-build
con NDK_DEBUG=1
(El indicador NDK_DEBUG no es necesario si se está ejecutando ndk-build con un shell de Unix)
en Windows, las cosas se vuelven un poco complicadas porque para usar ndk-gdb
, todavía necesita bash (o cygwin) desde NDK r7c, pero ndk-build
ejecutándose en cygwin bash se encontrará con un problema de permiso si alguna vez usa alguna biblioteca estática preconstruida
mi solución en la máquina de las ventanas es
- añadir
android:debuggable="true"
bandera para <application
etiqueta en AndroidManifest.xml
(igual al anterior)
- cmd (símbolo del sistema de Windows'):
ndk-build
invocan con NDK_DEBUG=1
- en bash Cygwin: plazo
ndk-gdb
para la investigación inicial rápida de los nativos de modo biblioteca, crear una actividad sencilla 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 aún puede tener tiempo para establecer puntos de interrupción, etc. antes de que el programa falle; cuando termine de configurar el depurador, en el (gdb)
mensaje, escriba continue
(o simplemente 'c
'), luego presione el botón para iniciar el programa bloqueado y depuración feliz ...
nice, pero no puedo acceder a él: ( – Noam
@ognian su cuenta con el enlace está suspendida ... lol Me gustaría saber la respuesta a esta pregunta también, ya que seguí el enlace asnwers y descubrí que la solución tampoco funcionaba. – JPM