我正在阅读 Android Publishing 文档,他们说要从我的代码中删除所有 Log 调用。我的代码中有一些对 e.printStackTrace()
的调用,可以作为程序正常运行的一部分打印出来(即,如果文件尚不存在)。
我也应该删除这些调用吗?
最佳答案
无论如何,您都不应该直接使用 e.printStackTrace()
- 这样做会将信息发送到 Android 日志,而不会显示它来自哪个应用程序(日志标记)。
正如其他人所提到的,继续捕获有问题的 Exception
,但使用 android.util.Log
方法之一进行日志记录。您可以只记录消息,而不记录堆栈跟踪,或者对堆栈跟踪使用详细日志记录:
try {
Object foo = null;
foo.toString();
} catch (NullPointerException ex) {
Log.w(LOG_TAG, "Foo didn't work: "+ ex.getMessage());
Log.d(LOG_TAG, Util.stackTraceWriter(ex));
}
您应该从生产版本中去除 DEBUG
或 VERBOSE
日志消息。最简单的方法是use ProGuard to remove Log.[dv]
calls来自您的代码。
关于android - 我应该在发布之前从我的代码中删除 e.printStackTrace(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2072148/