¿Cuáles son las herramientas para depurar código nativo en Android
He hecho algunos cambios en la aplicación csipsimple para android, y quiero depurar su código nativo. Estoy usando el paquete ADT v21.1 para desarrollar (eclipse 3.7, cdt 8.1) bajo Ubuntu 12.10.
Me encontré con este tutorial para la depuración nativa bajo eclipse, pero no funcionó para mí (ver mi pregunta Depuración de código nativo en android bajo eclipse falla ). Ahora estoy probando la solución ARM DS-5 sin suerte adicional. También me encontré con esta solución nvidia, pero no estoy seguro de si vale la pena el esfuerzo. No probé el plugin de Sequoyah todavía, ya que parece anticuado.
- La opción Target está deshabilitada en la ventana de Eclipse-> Preferencia-> android
- DDMS no muestra subprocesos desde dispositivo
- Thrift cliente en Android
- ¿Debo preocuparme acerca de los mensajes de registro de consola de DDMS "No se puede enlazar a nnnn local para depurador"?
- Caught Throwable o Exception es nulo
¿Puede alguien por favor me guía a una buena herramienta de depuración de gui estable o método para depurar código nativo en Android en un dispositivo (mi dispositivo es htc sueño).
- Eclipse Android Project no Target disponible
- Error al abrir el Eclipse Android Layout Editor
- Estudio de Android: java.lang.NoClassDefFoundError
- Eclipse no puede encontrar adb
- Problema con el tutorial 'Hello Android'
- Eclipse: No se pudo inicializar el subproceso de supervisión: no se pudo establecer la conexión de bucle invertido
- ADT 22.3 (android 4.4) - obtener error "Después de la creación de la escena, #init () debe ser llamado"
- Eclipse Juno - Error de Aserción (Se produjeron problemas al invocar código del complemento: "org.eclipse.jface".)
A nadie le gusta esta respuesta, pero ndk-gdb es muy fiable. Puede ser un dolor de usar pero una vez que te vas no es tan malo.
El método básico de depuración será:
- Establezca un punto de interrupción en Eclipse en la línea donde cargue la biblioteca nativa.
- Comenzar a depurar en Eclipse
- Paso sobre la línea de la biblioteca de carga. No reanudar!
- En la línea de comandos, inicie ndk-gdb
- Establezca sus puntos de interrupción en gdb. Ingrese "c" para continuar
- Regresar a Eclipse y continuar
Voila! ¡Tus puntos de interrupción C serán alcanzados!
Por supuesto que usted necesita tener todo configurado en la terminal … Y yo sugeriría la impresión de una hoja de trucos gdb si no está familiarizado.
He estado depurando código nativo en Eclipse durante mucho tiempo (año ++) usando sólo las herramientas predeterminadas de android.
Algunos consejos que podrían ayudar.
- Mantenga el contenido jni en el proyecto de aplicación principal (no en un proyecto de biblioteca separado)
- Cree una aplicación Java en ejecución antes de agregar cualquier código nativo
- "Add Native Support" con sólo el archivo CPP predeterminado que genera, luego cierre y vuelva a abrir eclipse (debería intentar y construir automáticamente el lado nativo). El código nativo necesita construir con éxito al menos una vez para que todo sea feliz. Una vez que tenga éxito, agregue cualquier fuente adicional y actualice los archivos MK, etc.
- terminal es su amigo … y ndk-gdb es demasiado!
- agregar un 'colgar 10' … un retraso de diez segundos (en java) después de cargar la biblioteca nativa (permite depurar para adjuntar)
- paso a paso el código lentamente para permitir que la comunicación de la red se mantenga
- Reducir el número de ABI para no confundir el depurador
¡Que te diviertas!
Puede que no sea la mejor solución ya que no he probado los otros, pero Nvidia Debug Manager para Android es bastante bueno hasta ahora y fácil de usar. Viene con Tegra Android Development Pack que se puede obtener de: https://developer.nvidia.com/tegra-android-development-pack
- ¿Cómo comprobar qué imagen está vinculada a ImageView en android?
- Sensor del acclerómetro en hilo separado