7

したがって、すべてデフォルトで ACRA 4.4.0 を使用しており、logcat フィールドは空です。

私のアプリには

<uses-permission android:name="android.permission.READ_LOGS" />

これにより、少なくともJelly Bean以降の自分のアプリ ログが得られるはずです。

最後の注意: Android 4.1 (JellyBean) 以降、サードパーティ製アプリには READ_LOG 権限が付与されなくなりました。このバージョン以降、logcat は許可を必要とせずに、独自のアプリからのトレースのみを提供します。JellyBean logcat ログは、バージョン 4.3.0b2 以降の ACRA によって取得されます

だから私は強制ログを行います:

Log.i("mytag" , "message");
ACRA.getErrorReporter().handleException(null);

エミュレーター (v4.2) では、完全な logcat を取得します。(ところで、これは JB が課した logcat 制限と多少矛盾しています)
しかし、私のデバイス v4.2.1 では、logcat は完全に空です。

誰にもアイデアはありますか?

4

2 に答える 2

6

電子メール モードの acra レポート (mailToタグ内@ReportsCrashes) を使用している場合、レポート サイズを小さくするために LogCat フィールドは含まれません。これを回避するには、customReportContent タグを使用するだけです。

(これを見つけるまでにしばらく検索しました-LogCatに言及しているセクションではなく、ドキュメントに書かれています)

@ReportsCrashes(formKey = "",
    mailTo = "xxxx@yyyy.com",
    customReportContent = {ReportField.APP_VERSION_CODE, ReportField.APP_VERSION_NAME, ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL, ReportField.STACK_TRACE, ReportField.LOGCAT },
    mode = ReportingInteractionMode.TOAST,
    resToastText = R.string.crash_toast_text
)

注: USER_CONTENT および CUSTOM_DATA フィールドを除外しました

注2:import org.acra.ReportField;

于 2013-09-18T12:00:47.133 に答える
1

JellyBean から READ_LOGS を使用できなくなったためだと思います。詳細については、ここを参照してください。

http://commonsware.com/blog/2012/07/12/read-logs-regression.html
于 2013-01-28T22:35:34.150 に答える