ACRA를 사용하여 메일로 충돌 보고서 수신

5436 단어 Android

ACRA 정보


ACRA는 Android 응용 프로그램이 강제로 종료될 때 충돌 보고서를 수집하는 프로그램 라이브러리입니다.
원래 자동 수집을 사용하는 방법은 일반적이지만 이전 방식(Google Docs에서 보고서 수집)에서는 사용할 수 없습니다.
현재 방식으로 백엔드 서버를 준비하여 Acralyzer(ACRA의 백엔드 응용 프로그램)가 거기에 집중된 것처럼 실행되도록 합니다.
이번에는 선뜻 쓰고 싶어 메일로 보고서를 수집하는 방법을 택했다.

ACRA 가져오기


라이브러리 다운로드


ACRA 라이브러리는 여기.에서 다운로드할 수 있습니다.

프로젝트에 라이브러리 추가


다운로드한 ZIP 파일/build/acra-4에 응답하십시오.x.0.jar을 프로젝트의/libs로 복사합니다.

애플에서 ACRA 초기화


ACRA는 Application 클래스를 상속하는 클래스에서 초기화됩니다.
갑자기 메일 발송 화면이 나타나는 것은 불친절하기 때문에 확인 대화상자를 표시해야 한다.
MyApplication.java
import org.acra.*;
import org.acra.annotation.*;

@ReportsCrashes(
    formKey = "", // Google DocsのformKeyの設定なので空文字
    mailTo="<YOUR_EMAIL_ADDRESS>",
    mode=ReportingInteractionMode.DIALOG, // Dialogを表示
    resDialogTitle=R.string.acra_dialog_title, // Dialogのタイトル
    resDialogText=R.string.acra_dialog_text, // Dialogのテキスト
    resDialogCommentPrompt=R.string.acra_dialog_comment_prompt // 発生状況を入力する欄のラベル
)
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        // The following line triggers the initialization of ACRA
        super.onCreate();
        ACRA.init(this);
    }
}
strings.xml에 문자열을 추가합니다.
strings.xml
<string name="acra_dialog_title">クラッシュレポート</string>
<string name="acra_dialog_text">予期せぬエラーが発生しました。アプリを終了します。\nクラッシュレポートを送信しますか?</string>
<string name="acra_dialog_comment_prompt">発生状況を教えてください。</string>
AndroidManifest.xml에 정의를 추가합니다.
AndroidManifest.xml
<manifest ...>
  <application ... android:name="MyApplication">
    ...
    <activity
      android:name="org.acra.CrashReportDialog">
    </activity>
  </application>
  <uses-permission android:name="android.permission.INTERNET">
  </uses-permission>
</manifest>
MyApplication 클래스의 설정 및 INTERNET 권한을 추가합니다.
또한 Dialog가 Dialog 주제인 Activity로 구현되기 때문에 태그에 선언해야 합니다.
지금까지 ACRA 가져오기였습니다.
어쨌든 메일로 보내면 빨리 가져올 수 있어요.
강제로 종료하면 이 대화 상자가 표시됩니다.

메일로 보내면 이렇게 보내요.
USER_COMMENT=強制終了した!
ANDROID_VERSION=4.4.2
APP_VERSION_NAME=1.0
BRAND=google
PHONE_MODEL=Nexus 5
CUSTOM_DATA=
STACK_TRACE=java.lang.ArrayIndexOutOfBoundsException: length=0; index=1
...
시간이 있으면 Acralyzer가 자동으로 수집하는 방법을 시도해 보고 싶습니다.

좋은 웹페이지 즐겨찾기