我正在使用 Android 版 Crashlytics,它确实帮助我解决了很多崩溃问题。但今天我遇到了一点问题。
当我尝试在通过 wi-fi(使用代理)连接到互联网的 2.3.3 Galaxy S 设备上测试 crashlytics 时,我在设备上看到黑屏大约 2:30 分钟。调试时;我看到 Crashlytics.start(this)
代码不是异步的。它等待建立连接,因此 onCreate 方法无法由 UI 线程完成。(这解释了黑屏)。
我知道这是一个代理问题(代理设置在 2.3.x 设备上有点错误)但是等待大约 2:30 分钟使我的应用黑屏。这让我担心这可能发生在任何其他现实生活条件下,例如互联网连接不良。
我将尝试将 Crashlytics.start(this)
函数放入异步任务中,并将在每个 Activity 的 onCreate 方法上尝试此操作。 (AFAIK 没有检查 isCrashlyticsInitialized 的方法)
有没有人对此有更好的想法?
提前致谢。
LOGCAT:
10-02 16:01:38.410: D/Crashlytics(1561): Initializing Crashlytics 0.9.11.11
10-02 16:04:19.664: E/Crashlytics(1561): Network error while loading Crashlytics settings. Crashes will be cached until the network is available.
[URL=https://settings.crashlytics.com/api/v2/keys/KEY/platforms/android/apps/com.myapp/settings.json?libVersion=0.9.11.11&bundleVersion=441210&shortBundleVersion=2.1];[class java.net.SocketTimeoutException: Connection timed out]
最佳答案
这里是来自 Crashlytics 的 Marc。在较新版本的 SDK 中,Crashlytics.start() 在后台线程中完成所有繁重的工作。您的日志表明您使用的是 v0.9.11。更新到最新版本 (v1.0.4) 后,您可以将 Crashlytics.start 保留在 Application 子类中。如果您需要任何更新方面的帮助,请通过 crashlytics.com 的支持联系我们!
关于android - 在 android 的 onCreate 方法上初始化 Crashlytics 是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19140066/