当我的应用程序崩溃时,如何设置自定义对话框框?

3

我在我的应用程序中使用了 ACRA 4.9.0 版本。当我的应用程序崩溃时,我想向用户显示对话框。

这是我的当前代码:

public class App extends MultiDexApplication {

@Override
public void onCreate() {
    ConfigurationBuilder config = new ConfigurationBuilder(this);
    config.setMailTo("mailto@gmail.com");
    config.setResDialogIcon(android.R.drawable.ic_dialog_info);
    config.setResDialogText(R.string.crash_dialog_text);
    config.setResDialogTitle(R.string.crash_dialog_title);
    config.setResDialogCommentPrompt(R.string.crash_dialog_comment_prompt);
    config.setResDialogOkToast(R.string.crash_dialog_ok_toast);
    config.setMode(ReportingInteractionMode.DIALOG);

    try{
        config.setMode(ReportingInteractionMode.DIALOG);
    } catch (Exception e) {
        e.printStackTrace();
        return;
    }

    ACRA.init(this, config);
    super.onCreate();
    Instance = this;
    applicationHandler = new Handler(getInstance().getMainLooper());
}

请检查更新后的答案。 - Sohail Zahid
请添加acra gradle依赖行。 - F43nd1r
1个回答

1
完整的演示
应用程序类
@ReportsCrashes(formUri = "http://yourserver.com/yourscript",
        mode = ReportingInteractionMode.DIALOG,
        resToastText = R.string.app_name,
        resDialogText = R.string.app_name,
        resDialogIcon = android.R.drawable.ic_dialog_info,
        resDialogTitle = R.string.app_name,
        resDialogCommentPrompt = R.string.app_name,
        resDialogEmailPrompt = R.string.app_name,
        resDialogOkToast = R.string.app_name,
        resDialogTheme = R.style.AppTheme_Dialog)

public class App extends Application {

    private Context context;

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();
        ACRA.init(this);
    }
}

MainActivity

public class MainActivity extends AppCompatActivity {
    Context context;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        context = this;

        EditText number = (EditText) findViewById(R.id.foodName);
        number.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int a = 0 / 0;
            }
        });
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/base"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="10dp"
    android:background="@color/white"
    android:orientation="horizontal"
    android:weightSum="10">


    <EditText
        android:id="@+id/foodName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="64dp"
        android:layout_marginRight="64dp"
        android:hint="Food name"
        android:inputType="textCapWords"
        android:textColor="@color/colorPrimaryDark"
        android:textColorHint="@color/colorPrimaryDark"
        android:textSize="32sp"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />

</RelativeLayout>

对话框:

enter image description here


我尝试了这个,但是出现了错误信息(属性值必须是常量)。 - Sandeep Mishra
你能发布完整的类吗? - Sohail Zahid
这是我的完整类,我删除了ReportCrashes因为它对我没有用。 - Sandeep Mishra
请直接返回翻译后的文本:如果仍然有问题,请发信息。 - Sohail Zahid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接