2011-11-25 7 views
11

Estoy tratando de adjuntar el ndk-gdb a mi aplicación de Android.No se puede adjuntar el ndk-gdb a la aplicación de Android

Estoy usando es Android-ndk-r6b y el dispositivo es Android 2.3, Samsung Galaxy S II.

He seguido todos los pasos de este ejemplo Click here for the example

Y También probé con una sola aplicación, cuando estoy tratando de adjuntar gdb con otra aplicación, pero la proyección detallado que siempre se está unida a la primera sí solicitud

Found package name: <1st attached package name> 

me trataron de poner en marcha el ndk-gdb usando este comando por primera vez:

ndk-gdb --start --force --verbose 

traté de conectar a otra aplicación con el comando de abajo, pero no capaz de tener éxito:

ndk-gdb --launch=com.example.hellogdbserver.HelloGdbServer --force --verbose 

Siempre estoy recibiendo el error abajo con la primera aplicación:

ERROR: Non-debuggable application installed on the target device.Please re-install the debuggable version! 

Esta es log cáscara completa que me estoy recibiendo

sh-4.1$ ndk-gdb --verbose --start --force 
    Android NDK installation path: /cygdrive/c/Android/android-ndk 
    Using default adb command: /cygdrive/c/Android/android-sdk-windows/platform-tools/adb 
    ADB version found: Android Debug Bridge version 1.0.26 
    Using final ADB command: '/cygdrive/c/Android/android-sdk-windows/platform-tools/adb' 
    Using auto-detected project path: /cygdrive/d/EclipseTestWorkspace/hello-gdbserver 
    Found package name: com.example.hellogdbserver 
    ABIs targetted by application: armeabi 
    Device API Level: 10 
    Device CPU ABIs: armeabi-v7a armeabi 
    Compatible device ABI: armeabi 
    Found debuggable flag: true 
    Found device gdbserver: /data/data/com.example.hellogdbserver/lib/gdbserver 
    Using gdb setup init: /cygdrive/d/EclipseTestWorkspace/hello-gdbserver/libs/armeabi/gdb.setup 
    Using toolchain prefix: /cygdrive/c/Android/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi- 
    Using app out directory: /cygdrive/d/EclipseTestWorkspace/hello-gdbserver/obj/local/armeabi 
    ERROR: Could not extract package's data directory. Are you sure that 
      your installed application is debuggable? 
    sh-4.1$ 

Háganme saber cómo puedo resolver el error anterior y también cómo adjuntarlo al nuevo paquete.

Mi teléfono no está rooteado. Espero que esto no afecte al gdb.

Esto tampoco fue útil Link to similar problem. Como mi teléfono es nuevo y no tengo ninguna aplicación que no sea la aplicación en desarrollo actual. (Sólo los paquetes que vienen junto con el teléfono Samsung están presentes. Sin aplicación se descarga desde el mercado.)

Gracias & Saludos,
SSuman185


Por favor, vaya a través del enlace Debugging native code in android app using the android ndk gdb

+0

Ver lo mismo en mi Samsung Infuse. ¿Encontraste resolución a esto? – Androider

+0

¿Ha intentado configurar android: debuggable = "true"> en su manifiesto? – Lennart

+0

Sí, ya configuré esta bandera como verdadera - Suman

Respuesta

5

Primero, asegúrese de que está compilando la versión depurativa de la aplicación. El archivo AndroidManifest.xml debe incluir la etiqueta android: debuggable = "true".

También puede verificarlo buscando el archivo APK en el directorio bin, desempaqueándolo (es solo un archivo ZIP renombrado) y asegurándose de que la carpeta lib \ armeabi contiene el archivo gdbserver.

Si se cumplen las dos condiciones anteriores, intente instalar el paquete en el dispositivo de forma manual:

<android-sdk>\platform-tools\adb.exe install -r <your-package-file.APK> 

Por favor, observe detenidamente la salida del adb.exe. Si muestra un error, podría explicar su problema.

+0

No vi el adbserver archivo en mi carpeta lib/armeabi. Estoy configurando android: debuggable = "true" y estoy ejecutando ndk-build NDK_DEBUG = 1 y estoy configurando APP_OPTIM: = debug en Application.mk. ¿Tiene alguna sugerencia sobre cómo asegurar que adbserver se compile e inserte en la carpeta armeabi? –

6

Este problema surgirá si intenta depurar un proyecto de biblioteca. ndk-gdb no puede adjuntarse a un proyecto que no es el "principal".

Tiene que poner su código jni en el proyecto de aplicación de inicio.

3

asegurarse de que tiene APP_OPTIM en conjunto JNI/Application.mk para depurar

+1

¿Qué hace esa bandera? ¿Es diferente de NDK_DEBUG = 1? –

Cuestiones relacionadas