2013-10-02 17 views
4

我使用的是Crashlytics for android,它确实帮助我解决了很多崩溃问题。但是今天我遇到了一些小问题。在android的onCreate方法上初始化Crashlytics是个好主意吗?

当我试图在2.3.3 Galaxy S设备上测试crashlytics时,它通过wi-fi(带有代理)连接到互联网,我在设备上看到黑屏大约2:30分钟。调试时;我看到Crashlytics.start(this)代码不是异步的。它等待建立连接,因此onCreate方法不能由UI线程完成(这解释了黑屏)。

我知道这是一个代理问题(代理设置是在2.3.x设备上有点bug),但等待约2:30分钟使我的应用黑屏。这让我担心,这可能会发生在任何其他现实生活中,比如互联网连接不畅。

我会尝试将Crashlytics.start(this)函数放到一个asynctask中,并会在每一个活动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] 

回答

10

马克从Crashlytics这里。 Crashlytics.start()在新版SDK中的后台线程中完成所有繁重的工作。你的日志表明你正在使用v0.9.11。一旦你更新到最新版本(v1.0.4),你将在应用程序子类中保留Crashlytics.start。如果您需要更新帮助,请通过crashlytics dot com与我们联系。

+0

感谢@Marc,但crashlytics库自动复制到我的项目的libs目录由crashlytics插件。我试图更新你的插件,但没有更新据我所知。从eclipse插件更新站点,您的http://download.crashlytics.com/android/eclipse链接将检索当前使用的0.9.4版本。我删除并重新安装了crashlytics插件(仍为v0.9.4),我试图将crashlytics支持添加到一个新的示例项目中。复制的crashlitics jar的信息是;规格标题:Crashlytics Android SDK 实施版本:11 规格版本:0.9.11 – Devrim

+0

我应该手动查找并复制crashlytics.jar吗?如果是的话,我可以在哪里找到它? – Devrim

+2

我在Crashlytics的Eclipse中将它作为我的软件站点:https://crashlytics.com/download/eclipse。如果你尝试这个,你仍然只能得到旧版本?我刚刚检查过,我的版本说1.1.0 – joelreeves

相关问题