e.printStackTrace();在catch块中发布应用程序时有任何负面影响 - android

时间:2015-10-09 05:59:32

标签: android

我最近在 google play商店上发布了应用,在我发布应用后,我再次检查了代码,我看到有这样的try-catch块:

try {
    // .... do something
} catch (Exception e) {
    // ... do something to handle the error
    e.printStackTrace();
}

所以我忘了这句话:e.printStackTrace();

我想知道这可以影响谷歌接受这个应用程序后的任何东西,它在商店里还活着吗?

我应该删除它们并重新发布吗?

3 个答案:

答案 0 :(得分:1)

它应该只报告问题。大多数人都不会理解,但我认为它不会产生太大的负面影响。我宁愿有一个错误信息,我不会只是一个崩溃。你应该没事。

答案 1 :(得分:1)

它会将堆栈跟踪写入日志。无需担心。

答案 2 :(得分:1)

就性能损失而言,这确实有一些影响。它仍然会将日志写入LogCat,但普通用户不会对它做任何事情,也不会看到它。此外,这种性能损失可以忽略不计。

至于其他日志消息,您可能有兴趣查看Remove all debug logging calls before publishing: are there tools to do this?。在那里,提到了这部分代码:

if (BuildConfig.DEBUG) {

如果将它放在e.printStackTrace()周围,当您将BuildConfig更改为RELEASE时,它将完全从应用程序中删除。 (请注意,发布VS debug确实会产生重大影响,因此请确保以发布模式发布。)

关于你的上一个问题,

  

我应该删除它们并重新发布吗?

考虑一下。有一个运行速度慢0.1毫秒的应用程序,或者必须更新应用程序而没有显着的变化。作为用户,您更喜欢哪个?