• 로그인

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

Android 에이전트 기본 충돌 보고

New Relic Android 에이전트 버전 6.7.0 부터 네이티브 충돌을 추적하고 진단하는 데 도움이 되도록 보고 및 분석이 향상되어 런타임 동안 네이티브 코드 수준에서 발생하는 신호 위반 및 기타 오류를 포함합니다.

이러한 개선 사항은 다음과 같습니다.

  • 기본 충돌 보고서 - 다음을 포함하여 런타임 중에 앱에서 보고한 신호 위반 및 기타 충돌

    • 신호 4(불법 지시)
    • 신호 6(비정상 종료)
    • 신호 7(버스 오류/잘못된 메모리 액세스)
    • 신호 8(부동 소수점 예외)
    • 신호 11(세그먼트 위반/잘못된 메모리 참조)
  • 네이티브 런타임 예외 네이티브 에이전트는 런타임 중에 앱에서 발생하는 처리되지 않은 C++ 예외를 보고하고 처리된 예외 로 보고합니다.처리되지 않은 예외는 일반적으로 치명적이며 응용 프로그램을 중단시킵니다.

  • 애플리케이션 응답 없음(ANR) 조건 네이티브 에이전트는 활동 또는 서비스 스레드가 Android의 허용 시간(포그라운드 활동의 경우 5초, 서비스의 경우 5-200초) 동안 차단된 경우 애플리케이션 응답 없음 조건을 감지하고 보고합니다.ANR 조건은 치명적인 조건으로 간주되지 않으므로 처리된 예외 (충돌이 아닌)로 보고됩니다.

중요

기본 충돌 보고는 인큐베이팅 기능입니다.기본 충돌 모니터링은 기껏해야 어렵지만 에이전트는 이러한 조건을 감지하고 보고하기 위해 최선을 다할 것입니다.일부 조건을 누락하거나 불완전하게 보고할 수 있으며 애플리케이션 대시보드에서 이러한 조건을 보는 데 지연이 있을 수 있습니다.

기본 기호의 기호화는 초기 NDK 에이전트 릴리스에서 지원되지 않습니다.앱에 대한 기본 기호가 없는 경우 충돌로 인해 생성된 스택 추적은 쉽게 읽을 수 없는 이러한 난독화된 레이블로만 구성됩니다.

New Relic Mobile의 충돌 분석 UI 에서 기본 충돌에 대한 자세한 정보를 보거나 이메일 로 충돌 알림을 받을 수 있습니다.또한 New Relic Insights 를 사용하여 충돌 데이터를 더 자세히 탐색하거나 추가 조사를 위해 티켓팅 시스템과 통합 할 수 있습니다.

구성

구성하려면 새 Relic 에이전트를 시작하는 앱 프로젝트의 build.gradle 파일에 추가 종속성을 추가해야 합니다.

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

Android 네이티브 에이전트 아티팩트는 MavenCentral 에서 찾을 수 있으며 의미 체계 버전 관리 규칙을 따릅니다.릴리스 및 다운로드에 대한 자세한 내용은 Android 에이전트 릴리스 정보 를 참조하세요.

시작

New Relic 에이전트가 추가된 앱 코드(일반적으로 MainActivity)에서 에이전트를 시작하기 전에 NativeReporting 기능 플래그를 활성화합니다.

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

기본 충돌 보고 비활성화

다른 기본 충돌 보고 도구를 사용하려면 에이전트 초기화 전에 NewRelic.disableFeature{FeatureFlag/NativeReporting) 를 호출하여 New Relic Mobile의 기본 충돌 보고를 비활성화합니다.예를 들어:

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

네이티브 크래시 리포터 디버그

Android용 충돌 보고는 이미 등록된 경우 포착되지 않은 예외 처리기를 연결하여 다른 충돌 보고 프레임워크와 함께 작동하도록 설계되었습니다.

보고 중 발생하는 모든 문제는 logcat에 표시됩니다.New Relic이 위반을 포착할 때마다 DEBUG 레벨에 기록됩니다 .예를 들어 세그먼트 위반의 경우

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

기본 보고서 전달은 다음 앱 호출까지 연기되므로 앱이 다시 시작될 때까지 New Relic Mobile 사용자 인터페이스에 충돌 보고서가 표시되지 않습니다.충돌이 발생한 경우 기본 에이전트는 일반적으로 보고서를 처리할 시간이나 안정성이 충분하지 않습니다.대신 보고서 데이터가 로컬 저장소에 빠르게 기록되어 다음에 앱이 실행될 때 처리됩니다.

문제점 해결

기본 보고서는 /data/data/{app package name}/cache/newrelic/reports 에 JSON 파일로 기기에 저장됩니다.이 디렉토리에는 충돌 후 앱 실행 후 보고서가 포함되어서는 안 됩니다.다른 에이전트 런타임 정보와 마찬가지로 기본 에이전트는 에이전트 런타임 상태와 혼합하기 위해 해당 상태를 logcat에 기록합니다.Android 에이전트의 로그 태그는 com.newrelic.android 이며 'adb logcat | grep "com.newrelic.android"껍질에서.

Copyright © 2022 New Relic Inc.

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