如何从我的Android应用程序中获得崩溃数据(至少堆栈跟踪)?至少在我自己的设备上工作时可以通过电缆检索,但理想的情况是,从我的应用程序在野外运行的任何实例中都可以,这样我就可以改进它,使它更可靠。
当前回答
现在Firebase崩溃报告非常流行,也更容易使用。 详情请参考以下连结: Firebase崩溃报告
希望对你有所帮助。
其他回答
可以使用Thread.setDefaultUncaughtExceptionHandler()处理这些异常,但是这似乎与Android处理异常的方法相混淆。我尝试使用这样的处理程序:
private class ExceptionHandler implements Thread.UncaughtExceptionHandler {
@Override
public void uncaughtException(Thread thread, Throwable ex){
Log.e(Constants.TAG, "uncaught_exception_handler: uncaught exception in thread " + thread.getName(), ex);
//hack to rethrow unchecked exceptions
if(ex instanceof RuntimeException)
throw (RuntimeException)ex;
if(ex instanceof Error)
throw (Error)ex;
//this should really never happen
Log.e(Constants.TAG, "uncaught_exception handler: unable to rethrow checked exception");
}
}
然而,即使重新抛出异常,我也无法获得所需的行为,即记录异常,同时仍然允许Android关闭组件,所以我在一段时间后放弃了它。
在Android 2.2中,现在可以从Android市场应用程序中自动获得崩溃报告:
Android的新错误报告功能 市场应用让开发者能够做到这一点 接收崩溃和冻结报告 他们的用户。报告将会 当他们登录到他们的 出版商账户。
http://developer.android.com/sdk/android-2.2-highlights.html
谷歌Firebase是谷歌最新的(2016)方式,为您提供崩溃/错误数据在您的手机。 将它包含在您的构建中。Gradle文件:
compile 'com.google.firebase:firebase-crash:9.0.0'
致命崩溃会自动记录,不需要用户输入,你也可以记录非致命崩溃或其他事件,如下所示:
try
{
}
catch(Exception ex)
{
FirebaseCrash.report(new Exception(ex.toString()));
}
我一直在Android和iOS应用中使用cratercism——我在techcrunch上听说过它们。到目前为止,他们都很满意!
有一个叫做fabric的工具,这是一个崩溃分析工具,它可以让你在应用程序实时部署和开发期间获得崩溃报告。 将这个工具添加到您的应用程序也很简单。 当应用程序崩溃时,可以从fabric查看崩溃报告。IO仪表盘。THW报告被自动捕获。它不会询问用户的权限。他/她是否想要发送错误/崩溃报告。 这是完全免费的… https://get.fabric.io/
推荐文章
- 改变开关的“开”色
- 以编程方式将EditText的输入类型从PASSWORD更改为NORMAL,反之亦然
- 如何在隐藏和查看密码之间切换
- 在Android上调整一个大的位图文件到缩放输出文件
- 如何更改Android版本和代码版本号?
- Android Studio突然无法解析符号
- 应用程序重新启动而不是恢复
- 如何设置整个应用程序在纵向模式?
- Android中文本的阴影效果?
- 以编程方式设置TextView的布局权重
- Android -如何覆盖“后退”按钮,所以它不完成()我的活动?
- 如何从通知点击发送参数到一个活动?
- 导航目标xxx对于这个NavController是未知的
- 使用ConstraintLayout均匀间距的视图
- 文件google-services错误。模块根文件夹中缺少Json。谷歌服务插件没有它就不能正常工作。