关键字:android,log,adb
我的问题是经过长时间的运行,我的应用程序在恢复时崩溃。这个错误异常崩溃,所以我当时无法收集它。
我的应用程序崩溃后,我想收集我的应用程序的最新日志,以便我可以找出错误。我该怎么办?
任何建议都可能有所帮助,谢谢。
答案 0 :(得分:1)
我至少看到了这样做的方法:
要收集崩溃报告,我建议您使用Crashlytics
。由Twitter制作,易于维护和使用。
在这里您可以找到更多信息:
https://fabric.io/kits/android/crashlytics/summary
http://try.crashlytics.com/sdk-android/
它还有一个Android Studio& IntelliJ Idea插件。
您还可以使用Google推出的名为Firebase崩溃报告的新Fibase
功能。检查:https://firebase.google.com/docs/crash/
我已经使用过第一个解决方案了,我很确定你会喜欢这个。
答案 1 :(得分:0)
piotrek1543的答案很棒。
我只是将其添加为情境选项: 应用程序崩溃后,您的手机仍有可能存在该日志。如果是这种情况,您可以使用USB线连接手机,然后使用adb shell获取它:
adb shell "logcat your.app.package:W -v long | grep E/AndroidRuntime" > android.log
E/AndroidRuntime
是android运行时错误日志的关键过滤器,可以根据需要进行更改。你会得到类似的东西:
E/AndroidRuntime( 2494): FATAL EXCEPTION: main
E/AndroidRuntime( 2494): Process: your.app.package, PID: 2494
E/AndroidRuntime( 2494): java.lang.RuntimeException: MainActivity btn_throwException
E/AndroidRuntime( 2494): at your.app.package.MainActivity$2.onClick(MainActivity.java:35)
E/AndroidRuntime( 2494): at android.view.View.performClick(View.java:4463)
E/AndroidRuntime( 2494): at android.view.View$PerformClick.run(View.java:18770)
E/AndroidRuntime( 2494): at android.os.Handler.handleCallback(Handler.java:808)
E/AndroidRuntime( 2494): at android.os.Handler.dispatchMessage(Handler.java:103)
E/AndroidRuntime( 2494): at android.os.Looper.loop(Looper.java:193)
E/AndroidRuntime( 2494): at android.app.ActivityThread.main(ActivityThread.java:5323)
E/AndroidRuntime( 2494): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 2494): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime( 2494): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)
E/AndroidRuntime( 2494): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
E/AndroidRuntime( 2494): at dalvik.system.NativeStart.main(Native Method)
点击此处https://developer.android.com/studio/command-line/logcat.html