【问题标题】:Debug Android app crash on startup without logcat or ACRA在没有 logcat 或 ACRA 的情况下调试 Android 应用程序在启动时崩溃
【发布时间】: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,但如果设备无法进入调试模式,那将无济于事。

标签: android crash tablet


【解决方案1】:

考虑使用其中一款应用在设备上查看 logcat:

也可以尝试使用Crashlytics。也许它会赶上你的崩溃?

但是,是的,在任何崩溃报告者(ACRA 或 Crashlytics)有机会捕捉到它之前就可能发生崩溃。

还有一点需要注意,也许有一种方法可以通过 WiFi 启用 ADB。 通常你需要通过 adb 来启用它,但如果是这种便宜又奇怪的平板电脑,ROM 中有一个启用它的选项吗?

【讨论】:

  • 我已经尝试过日志记录应用程序,但它们没有在 hudl 上显示任何应用程序信息。我想我可以试试 crashlytics
  • 是的。此外,还添加了关于 ADB over WiFi 的注释。在设备上的开发者选项中查看
  • 我尝试了很多方法来启用调试,从 USB 到 wifi 到安装驱动程序以欺骗它工作,但无济于事。非常令人沮丧的是,他们不提供驱动程序,因为平板电脑的屏幕非常好,而且作为廉价的开发设备非常有用。 Tesco 可能不是一家科技公司,但他们是世界上最大的零售商之一,因此如果他们成为驱动程序,肯定会在“廉价开发平板电脑”市场占有很大份额......
【解决方案2】:

好的!所以现在是凌晨 1 点,我决定最后一次尝试修复,我想我做到了。在我的清单中,我有类似的东西

 <activity
        android:name=".MyActivity"
        ...

例如,虽然这在手机上运行良好,但出于某种原因,Hudl 需要完整的包名称,即 com.mypackage.MyActivity。不知道为什么会这样,但它似乎已经解决了这个问题。

【讨论】:

    猜你喜欢
    • 2017-02-11
    • 2015-08-30
    • 1970-01-01
    • 2016-05-23
    • 2017-03-29
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多