• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Reportes de fallos nativos del agente de Android

A partir de la versión 6.7.0 del agente AndroidNew Relic , para ayudar a rastrear y diagnosticar fallas nativas, los reportes y análisis se mejoraron para incluir señales de infracción y otras fallas que ocurren en el nivel del código nativo durante el tiempo de ejecución.

Estas mejoras incluyen:

  • Reportes de fallos nativos: el agente de Android señalará violaciones y otros fallos reportados por la aplicación durante el tiempo de ejecución, que incluyen:

    • Señal 4 (instrucción ilegal)
    • Señal 6 (Terminación anormal)
    • Señal 7 (Error de bus/mal acceso a la memoria)
    • Señal 8 (excepción de punto flotante)
    • Señal 11 (Segmentación complicada/referencia de memoria no válida)
  • Excepciones de tiempo de ejecución nativas: el agente nativo informará cualquier excepción de C++ no controlada lanzada por la aplicación durante el tiempo de ejecución y las reportará como excepciones controladas. Las excepciones no controladas suelen ser fatales y bloquearán la aplicación.

  • Condiciones de la aplicación que no responde (ANR): el agente nativo detectará e informará las condiciones de la aplicación que no responde cuando una actividad o hilo de servicio estuvo bloqueado durante más tiempo que el tiempo permitido por Android, que es de 5 segundos para actividades en primer plano y de 5 a 200 segundos para servicios. . Las condiciones ANR se informarán como una excepción manejada (en lugar de accidentes), ya que no se consideran condiciones fatales.

Importante

Los informes de fallos nativos son una característica en incubación. El monitoreo nativo de fallas es, en el mejor de los casos, difícil, pero el agente hará todos los mejores intentos para detectar e informar estas condiciones. Es posible que omita algunas condiciones o las informe de manera incompleta, y puede haber latencia al visualizar estas condiciones en el dashboard de la aplicación.

La simbolización de símbolos nativos no será compatible con las primeras versiones del agente NDK. Cuando los símbolos nativos de una aplicación no están presentes, el rastreo de la pila producido por una falla consiste únicamente en estas etiquetas ofuscadas, que no son fácilmente legibles.

Puede ver información detallada sobre fallas nativas en de New Relic Mobile Crash analysis UI de o recibir notificaciones de fallas por email. También puede explorar los datos del accidente en mayor profundidad con New Relic Insights o integrarlos con sistemas de tiquetes para una mayor investigación.

Configuración

La configuración requiere agregar una dependencia adicional en el archivo build.gradle de los proyectos de aplicación que inician el agente New Relic :

dependencies {
implementation 'com.newrelic.agent.android:agent-ndk:1.+'
}

Los artefactos del agente de Android se pueden encontrar en MavenCentral y siguen las convenciones de control de versiones semánticas. Consulte las notas de la versión del agente de Android para obtener detalles completos sobre lanzamientos y descargas.

Habilitar reportes de fallos nativos

En el código de su aplicación donde se agrega el agente New Relic (generalmente en MainActivity), habilite el indicador característico NativeReporting antes de iniciar el agente:

NewRelic.enableFeature(FeatureFlag.NativeReporting);
NewRelic
.withApplicationToken("<appToken>")
.start(this.getApplication());

Deshabilitar los informes de fallos nativos

Si desea emplear otra herramienta nativa de reportes de fallos, desactive los reportes de fallos nativos llamando a NewRelic.disableFeature(FeatureFlag/NativeReporting) antes de la inicialización del agente. Por ejemplo:

NewRelic.disableFeature(FeatureFlag.NativeReporting);
NewRelic
.withApplicationToken("<appToken>")
.start(this.getApplication());

Depurar el reportero de fallos nativo

Los informes de fallos para Android están diseñados para funcionar con otros marcos de informes de fallos mediante la cadena del controlador de excepciones no detectadas si ya está registrado.

Cualquier problema que surja durante la generación de reportes aparecerá en logcat. Cada vez que New Relic atrapa una infracción, se registra en el nivel DEBUG . Por ejemplo, para un segmento cometido verá el siguiente log:

Signal 11 intercepted: Segmentation violation (invalid memory reference)
Invoking previous handler for signal 11

La entrega de informes nativos se difiere hasta la siguiente invocación de la aplicación, por lo que no verá informes de fallos en la interfaz de usuario de New Relic Mobile hasta que la aplicación se haya lanzado nuevamente. En caso de una falla, el agente nativo generalmente no tendrá suficiente tiempo ni estabilidad para procesar el informe. En cambio, los datos del informe se escriben rápidamente en el almacenamiento local para procesarlos la próxima vez que se lance la aplicación.

Resolución de problemas

Los reportes nativos se almacenan en el dispositivo como archivos JSON en /data/data/APP_PACKAGE_NAME/cache/newrelic/reports. Este directorio no debe contener ningún reporte luego del lanzamiento de la aplicación luego de un bloqueo.

Al igual que con otra información del tiempo de ejecución del agente, el agente nativo escribe su estado en logcat para combinarlo con el estado del tiempo de ejecución del agente. La etiqueta log del agente es com.newrelic.android y se puede aislar de otros registros en tiempo de ejecución ejecutando adb logcat | grep "com.newrelic.android" desde el shell.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.