gpt4 book ai didi

java - Android Studio 中未显示日志记录和崩溃堆栈跟踪

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:11:44 24 4
gpt4 key购买 nike

我正在尝试在我的设备上调试应用程序,但我在使用调试器时遇到了一些问题。我尝试测试记录器以查看它是否会像这样写入 Logcat:

Log.d("MyActivity", "Testing logging...");

但是在 Logcat 中没有显示 app: com.myapp.debug 过滤器。当我简单地按字符串过滤(使用我的应用程序名称)时出现,但条目如下所示:

01-08 13:45:07.468  29748-29748/? D/MyActivity﹕ Testing logging...

这个问号是否意味着应用程序中的某些内容没有传递给调试器?这可能与我的调试器的第二个问题有关:

我一直在调试崩溃,每次发生崩溃时,手机只会显示“应用未响应”消息,然后关闭当前 Activity ,断开调试器,应用继续运行之前的 Activity 。没有堆栈跟踪,没有关于崩溃的信息,什么都没有。我需要在 Android Studio 中设置什么才能让它正常工作吗?

最佳答案

我也遇到了这个麻烦,我找不到太好的答案。相反,我做了一个变通并使用 Thread.setDefaultUncaughtExceptionHandler() 捕获错误并使用 Log.e() 记录它

我用这个类来做的。

  public class ExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler {
private final String LINE_SEPARATOR = "\n";
public static final String LOG_TAG = ExceptionHandler.class.getSimpleName();

@SuppressWarnings("deprecation")
public void uncaughtException(Thread thread, Throwable exception) {
StringWriter stackTrace = new StringWriter();
exception.printStackTrace(new PrintWriter(stackTrace));

StringBuilder errorReport = new StringBuilder();
errorReport.append(stackTrace.toString());

Log.e(LOG_TAG, errorReport.toString());

android.os.Process.killProcess(android.os.Process.myPid());
System.exit(10);
}
}

然后在我的 Activity 中。

   @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

/**
* catch unexpected error
*/
Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler());

setContentView(R.layout.activity_main);

//other codes
}

希望这对您有所帮助。

关于java - Android Studio 中未显示日志记录和崩溃堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27841856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com