Android adb log - 在应用程序崩溃后收集最近的日志
Android adb log - Collecting recent log after application crashes
关键字:android、日志、adb
我的问题是长时间运行后,我的应用程序在恢复时崩溃。这个bug异常崩溃,所以当时没法收藏
在我的应用程序崩溃后,我想立即收集我的应用程序的最新日志,以便找出错误。我该怎么做?
任何建议都可能有所帮助,谢谢。
我至少知道如何做到这一点:
Crashlytics
要收集崩溃报告,我建议您使用 Crashlytics
。由 Twitter 制作,易于维护和使用。
您可以在这里找到更多信息:
https://fabric.io/kits/android/crashlytics/summary
http://try.crashlytics.com/sdk-android/
它还有一个 Android Studio 和 IntelliJ Idea 插件。
Firebase 崩溃报告
您还可以使用 Google 引入的新 Fibase
功能,称为 Firebase 崩溃报告。检查:https://firebase.google.com/docs/crash/
我已经使用了第一个解决方案,我很确定你会喜欢这个。
piotrek1543的回答很好
我只是将其添加为一个情境选项:
在您的应用程序崩溃后,您的 phone 可能仍有该日志。如果是这种情况,您可以将 phone 连接到 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.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
关键字:android、日志、adb
我的问题是长时间运行后,我的应用程序在恢复时崩溃。这个bug异常崩溃,所以当时没法收藏
在我的应用程序崩溃后,我想立即收集我的应用程序的最新日志,以便找出错误。我该怎么做?
任何建议都可能有所帮助,谢谢。
我至少知道如何做到这一点:
Crashlytics
要收集崩溃报告,我建议您使用 Crashlytics
。由 Twitter 制作,易于维护和使用。
您可以在这里找到更多信息:
https://fabric.io/kits/android/crashlytics/summary
http://try.crashlytics.com/sdk-android/
它还有一个 Android Studio 和 IntelliJ Idea 插件。
Firebase 崩溃报告
您还可以使用 Google 引入的新 Fibase
功能,称为 Firebase 崩溃报告。检查:https://firebase.google.com/docs/crash/
我已经使用了第一个解决方案,我很确定你会喜欢这个。
piotrek1543的回答很好
我只是将其添加为一个情境选项: 在您的应用程序崩溃后,您的 phone 可能仍有该日志。如果是这种情况,您可以将 phone 连接到 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.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