【发布时间】:2015-08-11 08:18:55
【问题描述】:
我正在开发的应用程序在移动设备上运行(在 4 种不同的设备上测试),但是当我尝试在我的平板电脑上测试它时崩溃了。我正在使用的平板电脑是 Tesco Hudl 2,虽然它是一款优质低成本设备,但缺少 adb 驱动程序,因此您无法通过 USB 调试应用程序并获取 Logcat 数据。该应用是使用 Android Studio 开发的。
对于我开发的其他应用程序,我刚刚在项目中设置了 ACRA,因此我仍然可以从崩溃中获取调试信息。然而,这一次,应用程序在没有来自 ACRA 的任何信息的情况下崩溃,所以我不太确定出了什么问题。我很确定我已经正确设置了 ACRA,因为我之前已经在几个项目中使用过它并且这次没有发现任何问题。会不会是 ACRA 无法捕捉到的问题发生得太早了?
我已经从活动中提取了所有代码,因此代码中唯一发生的事情是 ACRA 在派生的 Application 类中被初始化(请注意,在没有 ACRA 的情况下存在崩溃)。该应用程序还使用谷歌地图和搜索建议提供商。如果有任何人想看到的任何代码只是问,但我不确定究竟要发布什么,因为其他所有内容都被剥离了。那么,是否有人知道我可以做些什么来解决这个问题,或者我可以使用什么工具来捕获应用生命周期早期发生的任何类型的错误?
谢谢
以奇怪的行为更新...下载了 Crashlytics,它也没有捕获崩溃。我复制了项目并删除了除应用程序、活动和提供程序之外的每个 .java 文件。提供者函数是空的(除了返回值 0/false/null/whatever),应用程序类刚刚初始化 Crashlyitcs 并且 Activity 类是空的。然后就可以了,我什至可以添加很多代码并加载谷歌地图。 现在,如果我在我的主项目中做同样的事情,除了不删除 .java 文件,崩溃仍然会发生。这些文件中的类没有被使用,所以我不知道它们是如何导致崩溃的。否则,所有 xml、gradle、资源都是相同的(包和应用程序名称除外)。很混乱……
【问题讨论】:
-
我们确实需要看一些代码。
-
究竟是什么?显现?布局?风格/价值观?鉴于它在移动设备上运行良好,那么最可能导致它在平板电脑上失败的罪魁祸首是什么?
-
我本来建议使用 LogRabbit,但如果设备无法进入调试模式,那将无济于事。