如何替换标准错误信息?

Posted

技术标签:

【中文标题】如何替换标准错误信息?【英文标题】:How to replace standard error message? 【发布时间】:2013-06-17 03:18:56 【问题描述】:

当应用程序崩溃时,我们会看到类似您的精彩应用程序已停止。如何更改此文本?

【问题讨论】:

你不能。它是检测崩溃并生成消息的 android 运行时。 【参考方案1】:

实现UncaughtExceptionHandler 并将其分配给您的Application

public class MyApplication extends Application 
    @Override
    public void onCreate() 
        super.onCreate();

        Thread.setDefaultUncaughtExceptionHandler(new CrashHandler());
    


public final class CrashHandler implements UncaughtExceptionHandler 
    private final UncaughtExceptionHandler handler;

    public CrashHandler() 
        // Uncomment this line if you want to show the default app crash message
        //this.handler = Thread.getDefaultUncaughtExceptionHandler();
    

    @Override
    public void uncaughtException(final Thread thread, final Throwable throwable) 
        // Show pretty message to user

        // Uncomment this line to show the default app crash message
        //this.handler.uncaughtException(thread, throwable);
    

【讨论】:

感谢代码 sn-p。 :) 我只是想知道错误是否仍然发送到 playstore 的开发控制台? 只有未处理的错误(即崩溃)将被发送到开发控制台。如果你在 uncaughtException() 中处理它并且从不调用 Thread.getDefaultUncaughtExceptionHandler().uncaughtException(),它不会被发送到开发控制台。 这对崩溃分析也有帮助吗?【参考方案2】:

这些错误通常是由于未处理的异常而显示的。如果您在程序开始时设置了未处理的异常处理程序,然后在其中显示您要查看的消息。

但是,我不完全确定,如果在您的消息显示是否还显示默认的 android 警报之后,但这可能就是您所追求的。

【讨论】:

如果我们没有明确调用默认值,则不会显示它。【参考方案3】:

我想这就是你要找的东西

ACRA - Application Crash Report for Android

网站概要

发生崩溃时,您可以选择和配置 4 种不同的与用户交互的方式:

静音(默认):ACRA 操作不可见。发送崩溃报告,然后默认的 android 崩溃系统完成其工作(强制关闭对话框)

Toast:当崩溃发生时,ACRA 会显示一个 toast 并同时发送报告。

通知:应用程序崩溃时会显示可选的 toast,但不会立即发送报告。发布状态栏通知,警告用户他应该发送报告。选中后,通知会显示一个对话框,要求授权发送报告,并带有可选的用户评论。

对话框:自 4.3.0b1 起,实验性的,允许在不需要状态栏通知的情况下显示崩溃对话框。

希望该链接有所帮助。

【讨论】:

因此,您可以选择在应用失败时看到的四个(实际上是三个)Android 通知中的哪一个,但实际上您无法自定义其中的任何一个。这回答了与所问问题不同的问题 - “我如何更改文本”(即用他自己选择的文本替换它)。 是的,这是完全不同的事情 嘿,对此感到抱歉..我想念这个问题..以为你问过如何处理它..感谢您的纠正..

以上是关于如何替换标准错误信息?的主要内容,如果未能解决你的问题,请参考以下文章

如何在调试PHP代码时不显示错误信息

如何获取shell命令输出的错误信息

协程 shell_exec 如何捕获标准错误流

在make 过程中只显示错误信息

IIS7 + PHP5.3.16 + Plesk 如何获取 500 错误的详细信息?

java中如何获取 控制台的输出信息,错误信息,和异常信息。