6

ACRA クラッシュ レポート システムを Android プロジェクトにインストールしようとしています。現在、私のプロジェクトはすでに Activity クラスというクラスを拡張しています。では、どうすれば Acra プロジェクトを実装できますか?

通常の方法で述べているように、クラス fe MyApplication を作成し、それを Application で拡張する必要があります。私は既に Activity クラスを拡張しているので、どうすればよいかわかりません...彼らはこう言います: アプリに既に Application サブクラスが含まれている場合は、このクラスに ACRA を追加してください。しかし、私はこれをどのように行うべきかわかりません..

ありがとう!

http://code.google.com/p/acra/wiki/BasicSetup

4

4 に答える 4

2

MyApplicationから拡張するクラスを作成し、Applicationオーバーライドについて彼らが言うことを実行してからonCreate()、AndroidManifest に移動します。

または<application>などの値を持つ が必要です。そこに追加するだけで準備完了です。android:labelandroid:themeandroid:name=".MyApplication"

パッケージがcom.example.testである場合は、MyApplicationそこにある必要があることに注意してください。MyApplication を別の場所に配置する場合は、その場所を指定する必要があります。

たとえば、パッケージが である場合com.example.testMyApplication、マニフェストcom.example.test.applicationに追加する必要があります。android:name=".application.MyApplicationアプリケーション専用のパッケージを使用することを強くお勧めします。これは、プロジェクトを原子化し、はるかに管理しやすく保守しやすくするためです。

于 2012-09-11T08:40:30.647 に答える
1

アプリケーションはマニフェストのために使用されます。マニフェストでは、これを application タグに追加するだけです (すべてのアクティビティが含まれます)。

android:name=".MyApplication"

元:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:name=".MyApplication"
    android:theme="@style/AppTheme" >

初期化が簡単なため (起動時に Android システムによって自動的に初期化されるため)、 が報告されることはありません。起動時にすぐにクラッシュし、それでも報告される可能性があります。したがって、これは非常にスマートな設定です。

私のアプリケーションクラスは次のようになります。

@ReportsCrashes(

    formUri = "https://backend.com",
    customReportContent = { /* */ReportField.APP_VERSION_NAME, ReportField.PACKAGE_NAME,ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL,ReportField.LOGCAT },
    mode = ReportingInteractionMode.TOAST,
    resToastText = R.string.crash_toast_text

)  

public class ACRAHandler extends Application {


    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);


        final ACRAConfiguration config = new ConfigurationBuilder(this)

                .build();
        // Initialise ACRA
        ACRA.init(this, config);

    }



}

インスタンスに Firebase を使用している場合は、同じアプリケーション拡張クラスで問題なく両方を一緒に使用できます。自分で試してみたところ、うまくいきました。エラー報告や Firebase に問題はありませんでした。

さらに、ACRA の新しいリンクが Github に追加されました: https://github.com/ACRA/acra/wiki/BasicSetup

回答が来たのはずっと前で、更新が必要だったので、私はこれに回答しました

于 2016-07-15T13:59:52.817 に答える
1

詳細なチュートリアルを投稿しました。これにより、既存のプロジェクト用に ACRA をセットアップし、電子メール アドレスに電子メールを送信するように構成できます。 リンク

于 2015-04-01T22:07:04.417 に答える
-1

アプリケーションのグローバルな状態を維持するには、アプリケーションのサブクラスが必要です。すべてのアプリがそれをサブクラス化する必要はありません。アプリにまだない場合は、作成できます。

例:

/* do ACRA imports */
@ReportsCrashes(formKey = "x-x-x-x-x-x")
public class YourApplication extends Application{

public void onCreate(){
    ACRA.init(this);
    super.onCreate();
}
}

チュートリアルに記載されているように、マニフェスト ファイルでも宣言する必要があります。

于 2012-09-11T08:41:22.907 に答える