Android 写入日志会导致应用程序崩溃吗?

Android 写入日志会导致应用程序崩溃吗?,android,Android,我正在学习以下教程: Log.e(ACTIVITY_SERVICE, e.getCause().toString()); 在FileChooser类中,有一个异常被抑制,因为catch子句中没有任何内容。因此,我决定在catch子句中添加以下语句: Log.e(ACTIVITY_SERVICE, e.getCause().toString()); 由于某些原因,这总是导致应用程序崩溃(NullPointerException)。当我不做任何日志记录时,除了一个简单的syso打印,那么我不会得

我正在学习以下教程:

Log.e(ACTIVITY_SERVICE, e.getCause().toString());
FileChooser
类中,有一个异常被抑制,因为catch子句中没有任何内容。因此,我决定在catch子句中添加以下语句:

Log.e(ACTIVITY_SERVICE, e.getCause().toString());

由于某些原因,这总是导致应用程序崩溃(NullPointerException)。当我不做任何日志记录时,除了一个简单的syso打印,那么我不会得到任何异常,应用程序也不会崩溃。那么它工作得很好。我不熟悉整个Android框架,只想了解为什么会发生这种情况。

多亏了Ingo和Commonware的提示,我得出结论,以下几行导致了异常:

Log.e(ACTIVITY_SERVICE, e.getCause().toString());
编辑:

Log.e(ACTIVITY_SERVICE, e.getCause().toString());

事实上,这是foreach循环的开始,它迭代给定目录的所有子目录和文件。我不知道,如果要迭代的列表实际上为空,这会导致NPE。出于某种原因,我认为在这种情况下会自动跳过循环。

如果getCause()返回null怎么办?即使返回null,也无法解释为什么会首先抛出异常。我可以添加一些带有硬编码字符串的随机syso,然后我不会得到任何异常,控制台上也没有输出,请。“控制台上没有输出”--不应该有。Android日志是通过LogCat查看的。因为您知道它是NPE,所以您必须有某种日志输出或stacktrace。你能和我们分享一下吗?从中我所能看到的是你的
catch
块成功捕获了
try
块中的NullPointerException。是什么让您认为NPE是由
catch
块引起的?
FileBrowser.java
中的第38行是什么?
Log.e(ACTIVITY_SERVICE, e.getCause().toString());