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.

  • Android Studio, errores de Gradle. Contenido no permitido en Prolog
  • El estudio de Android no se abre en Windows
  • Android studio "Use gradle wrapper" en gris
  • Java.util.zip.ZipException: entrada duplicada: cómo superar
  • Android Studio: Theme.Sherlock.Light.DarkActionBar no se puede resolver
  • Actualizar a Android Studio 3.0 Canary 2 dar errores de compilación
  • 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

  • Cómo configurar gradle para trabajar "offline" (usando dependencias almacenadas en caché)
  • No se puede detectar ABI de aplicación al intentar depurar NDK
  • Eclipse a Android Studio Import
  • Android Studio: 'wrap in container' en formato XML
  • Error 1 libavcodec.so Formato de archivo no reconocido Android GL Live Wallpaper
  • Cómo crear un archivo .jar desde un proyecto de Android Studio
  • 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.