Android应用程序不会崩溃,但不会对未捕获的异常做出响应

时间:2015-06-30 12:11:56

标签: java android google-analytics uncaughtexceptionhandler

我最近注意到,当发生未捕获的异常时,我的应用程序不会崩溃,但它没有响应。我使用Google Analytics来了解崩溃情况,我怀疑这可能是导致问题的原因。

当我在NullPointerExceptiononCreate()之后)中抛出super.onCreate()时,该应用会显示一个白色屏幕,但不会崩溃。

Logcat说:

06-30 14:00:59.386  26259-26259/? I/GAv4﹕ Google Analytics 7.5.71 is starting up. To enable debug logging on a device run:
    adb shell setprop log.tag.GAv4 DEBUG
    adb logcat -s GAv4
06-30 14:00:59.398  26259-26259/? W/GAv4﹕ AnalyticsReceiver is not registered or is disabled. Register the receiver for reliable dispatching on non-Google Play devices. See http://goo.gl/8Rd3yj for instructions.
06-30 14:00:59.409  26259-26259/? W/GAv4﹕ CampaignTrackingReceiver is not registered, not exported or is disabled. Installation campaign tracking is not possible. See http://goo.gl/8Rd3yj for instructions.
06-30 14:00:59.414  26259-26295/? W/GAv4﹕ AnalyticsService not registered in the app manifest. Hits might not be delivered reliably. See http://goo.gl/8Rd3yj for instructions.
06-30 14:00:59.467  26259-26259/? D/AndroidRuntime﹕ Shutting down VM

我希望看到未被捕获的异常,因为如果我没有看到堆栈跟踪和问题的原因,那么很难修复它们。

我可以做些什么才能恢复以前的行为?

编辑:删除Google Analytics错误报告(未调用tracker.enableExceptionReporting(true);)后,我再次崩溃了。我使用Play Services 7.5.0中的Analytics。

2 个答案:

答案 0 :(得分:1)

谷歌分析是罪魁祸首。尝试在开发时禁用它(或禁用未捕获的异常的自动报告),并在使用发布密钥对应用程序进行签名时启用它。

答案 1 :(得分:-1)

默认情况下,Exceptions会显示在控制台中。

如果你不想检查控制台(我觉得这个目的更方便,因为Logcat有时候很麻烦),那么只需在Exception中显示Log {1}}被捕时。

try {

} catch (Exception e) {
    Log.e("YOUR_APP_TAG", "Exception occured: ", e);
}