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


¿Cómo obtener un punto de ruptura en código NDK nativo y depurar código nativo en Android Studio?

Estoy desarrollando la aplicación android usando NDK. Tengo dos proyectos. Uno es para mi biblioteca nativa que utiliza NDK y genera el archivo .so.

Estoy utilizando Android Studio, pero deshabilitar la creación automática y habilitar la creación utilizando ndk-build. Estoy utilizando Windows 7.

  • Advertencia de instalación de Android Studio: No se pudo mover una carpeta
  • Cómo obtener Android Studio para reconocer el archivo como fuente (prueba)
  • Cómo utilizar Data Binding y Kotlin en Android Studio 3.0.0
  • Error: no se pudo inicializar la clase com.android.ide.common.util.ReadWriteProcessLock después de actualizar a AS 2.4
  • Cambio de nombre de proyecto de Android Studio DIrectory de raíz de proyecto / Cambio de nombre de proyecto
  • Error al resolver: com.android.support:appcompat-v7:15.+
  • Ahora, después de generar el archivo .so, copio los de mi proyecto de aplicación principal que también usa ndk-build para compilar funciones JNI en las que llamo funciones de mi biblioteca. Espero que esté limpio hasta este punto. Si no, entonces daré más detalles a petición.

    Ahora estoy ejecutando mi aplicación en el dispositivo con Android Studio y puedo poner punto de ruptura en código java y depurar ese código, pero no soy capaz de depurar la llamada JNI y código nativo que tengo en el proyecto por separado. Necesito depurar dentro de mi código de biblioteca. Entonces, ¿hay alguna manera de lograr esto?

    He visto VisualGDB pero se paga. Así que hágamelo saber si hay alguna alternativa para completar mis requisitos de depuración. He buscado mucho, pero no obtuvo ninguna solución concreta.

    Puedo ver la opción en Android Studio para adjuntar al proceso de Android donde puedo ver mi dispositivo en ejecución, pero no estoy seguro de cómo usarlo para que pueda depurar por código de biblioteca nativa (que está en proyecto independiente sin actividad).

    Déjeme saber si se requiere más detalle

  • Firebase assistant no se muestra en Studio 2.2.3
  • Botón button = findViewById (R.id.button) siempre resuelve null en Android Studio
  • Android ICS 4.0 NDK NewStringUTF se está estrellando la aplicación
  • Android studio no descargar fuentes y javadoc
  • Intentar invocar método virtual 'int java.lang.Object.hashCode ()' en la integración de facebook
  • ¿Cómo obtener el certificado de huella digital SHA-1 en Android Studio para el modo de depuración?
  • 3 Solutions collect form web for “¿Cómo obtener un punto de ruptura en código NDK nativo y depurar código nativo en Android Studio?”

    En Android Studio 2.0 vista previa el proceso es un poco diferente (ans más fácil creo):

    1. Instale "LLDB" : Vaya en Herramientas-> Android-> SDK Manager, luego vaya en la pestaña "Herramientas SDK" y asegúrese de comprobar "LLDB" (Cerca del final de la lista por lo general)
    2. Seleccione una / la variante "Debug" : En la esquina inferior izquierda de AS, haga clic en "Build Variants", la variante de depuración predeterminada se denomina "Debug"
    3. Seleccione una configuración nativa : lado izquierdo del botón de ejecución (El triángulo verde), La configuración nativa predeterminada se llama "app-native"
    4. Establecer un punto de interrupción
    5. Inicie su aplicación en depuración haciendo clic en el error pequeño en el lado derecho del botón Ejecutar.

    Si no funciona, compruebe que su configuración nativa tenga el tipo de depuración "Híbrido" seleccionado: A la derecha del botón de reproducción, haga clic en el pequeño triángulo, seleccione "Editar configuraciones", seleccione su configuración de "aplicación nativa", vaya la pestaña "Depurador" y seleccione "Debug type: Hybrid".

    Android Studio 1.3+ admite la depuración nativa.

    Para configurarlo, siga estos pasos:

    1. Modifique los archivos gradle-wrapper.properties, local.properties y build.gradle como se muestra en esta guía
    2. Gradle de sincronización
    3. Crear y seleccionar una nueva configuración de compilación:

      Haga clic en desplegable al lado del botón Ejecutar) -> Editar configuraciones, haga clic en el signo más, elija Android Native, complete opciones a la derecha (usé LLDB en la pestaña de depuración nativa) y debería estar configurado.

    4. Establecer puntos de interrupción en C ++

    5. Pulse el botón de depuración y sea paciente (a veces el depurador toma un tiempo)

    He podido depurar código nativo bajo Lubuntu 14.04 con Android Studio 1.3 (canal estable). Aunque otros han tenido éxito en Windows, no he podido depurar de forma nativa en Windows 8.1 (lo he probado con Android Studio 1.3, 1.3.2 y 1.4 preview 3).

    Actualizar Android Studio 1.4 Beta acaba de salir. Lo probé y pude depurar de forma nativa en Windows 8.1.

    Fui capaz de establecer puntos de interrupción y paso en código nativo, pero sólo cuando todas las siguientes son verdaderas:

    1. Los archivos .so de biblioteca nativa generados conservaron sus símbolos de depuración
    2. Se suministraron fuentes (consulte el menú "Propiedades de la biblioteca")
    3. Configure la configuración run / build para usar un depurador nativo (como se describe aquí )

    Está funcionando para mí ahora mismo en Android Studio 1.5, usando el Gradle Experimental Plugin

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