在没有logcat或ACRA的情况下调试Android应用程序崩溃
我遇到问题,我正在开发的应用正在使用移动设备(在4种不同的设备上进行测试),但是当我尝试在我的平板电脑上进行测试时发生崩溃。 我使用的平板电脑是特易购Hudl 2,虽然它是一款质量好的低成本设备,但缺少adb驱动程序,因此您无法通过USB调试应用程序并获取Logcat数据。 该应用程序是使用Android Studio开发的。
有了我开发的其他应用程序,我刚刚在项目中设置了ACRA,因此我仍然可以从崩溃中获取调试信息。 然而,这一次,该应用程序在没有来自ACRA的任何信息的情况下崩溃,所以我不确定发生了什么问题。 我很确定我已经正确设置了ACRA,因为之前我已经在几个项目中使用了它,并且这次没有看到任何错误。 难道不管发生什么事情对于ACRA来说都太早了?
我已经从活动中提取了所有代码,因此代码中唯一发生的事情是ACRA在派生的Application类中初始化(请注意,没有ACRA时崩溃存在)。 该应用还使用Google地图和提供商提供搜索建议。 如果有任何代码想要查看只是问,但我不确定究竟要发布什么,因为一切都被剥离了。 那么,有没有人知道我可以做些什么来解决这个问题,或者我可以使用哪些工具来捕捉在应用生命周期的早期发生的各种错误?
谢谢
更新奇怪的行为...下载Crashlytics,它也没有赶上崩溃。 我复制了该项目,并删除了除应用程序,活动和提供程序之外的每个.java文件。 提供者函数是空的(除了0 / false / null / whatever的返回值),应用程序类只是初始化了Crashlyitcs,Activity类是空的。 然后这工作,我甚至能够添加很多的代码,并获得谷歌地图加载。 现在,如果我在我的主项目中做同样的事情,除非不删除.java文件,崩溃仍然会发生。 这些文件中的类没有使用,所以我不知道它们如何导致崩溃。 否则,所有的xml,gradle资源都是相同的(包名和应用程序名除外)。 很混乱...
考虑使用其中一个应用程序在设备上查看logcat:
也可以尝试使用Crashlytics。 也许它会赶上你的崩溃?
但是,是的,在任何碰撞记者(ACRA或Crashlytics)有机会抓住它之前,有可能发生崩溃。
还有一点需要注意的是,也许有一种方法可以通过WiFi启用ADB。 通常情况下,您需要通过adb启用它,但也许在这种便宜且奇怪的平板电脑的情况下,ROM中启用了该选项?
好! 所以现在是凌晨1点,我决定进行最后一次尝试修复,我想我也是这样做的。 在我的清单中,我有类似的东西
<activity
android:name=".MyActivity"
...
例如,虽然这在手机上运行良好,但由于某些原因,Hudl需要完整的软件包名称,例如com.mypackage.MyActivity。 不知道为什么会出现这种情况,但似乎解决了这个问题。
链接地址: http://www.djcxy.com/p/66179.html上一篇: Debug Android app crash on startup without logcat or ACRA
下一篇: Android Library Project casting error on extended Application class