Acra使用电子邮件报告

时间:2016-10-14 14:26:32

标签: android acra

我正在尝试使用ACRA在我的应用中报告未处理的异常。

给予许可:

<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.INTERNET" />
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:name=".MyApplication">

的gradle:

compile 'ch.acra:acra:4.9.0'

扩展应用程序类

package online.hannuveda.transafe_rx;

import org.acra.*;
import org.acra.annotation.*;
import android.support.multidex.MultiDexApplication;


@ReportsCrashes(formUri = "",
        mailTo = "akshaycjoshi@gmail.com",
        mode = ReportingInteractionMode.TOAST,
        resToastText = R.string.crash_toast_text)

public class MyApplication extends MultiDexApplication
{
    @Override
    public void onCreate() {
        super.onCreate();
        ACRA.init(this);
    }
}

在我的登录按钮中,我故意使用以下方法创建例外:

public void Login_Click(View v)
{

    int i = 12/0;
}

当发生此异常时,我看到吐司,然后应用程序崩溃,但我的收件箱中没有看到任何电子邮件。知道什么是错的吗?

2 个答案:

答案 0 :(得分:4)

删除formUri = "",然后重试。

如果同时传递了formUrimailTo,它会首先尝试通过HTTP将其发送到端点"",并使用mailTo作为后备,以防万一没有互联网许可,但您拥有该权限,因此它只会尝试将其发送到"",并且不会尝试将其邮寄。

答案 1 :(得分:1)

首先,删除formUri。当你使用mailTo以及formUri时,如果在崩溃时没有互联网,它会发送电子邮件。

此外,此权限:

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

仅适用于某些应用,我认为您必须申请使用它。在较新版本的Android上,您不再需要该权限。