Cordova应用程序编译但崩溃运行。如何获得错误报告?

时间:2016-07-11 13:32:15

标签: android cordova debugging google-chrome-devtools crash-reports

我有一个没有错误编译的Cordova应用程序。但是,当我将应用程序午餐到我的Android设备时,它会在启动时立即崩溃。当我不知道错误是什么时,我很难调试......

问题:有没有办法从崩溃中获取错误报告?

我通常使用chrome来调试我的应用,但这只有在应用能够在设备上加载和运行时才有效。

2 个答案:

答案 0 :(得分:4)

您要求提供一些关于logcat的文章...我在回答部分,因为它有太多的评论信息:)

<强> DOCS

如果是Android,您可以随时访问开发者页面。

HERE是Android关于logcat的页面

如果你使用android Studio,你也可以查看LINK

<强>捕获

基本上,您可以使用以下命令捕获logcat:

adb logcat

您可以添加许多参数来帮助您过滤和显示您想要的消息...这是个人的...我总是使用下面的命令来获取消息时间戳:< / p>

adb logcat -v time

您可以将输出重定向到文件并在文本编辑器中进行分析。

<强>分析

如果你的应用程序崩溃了,你会得到类似的东西:

07-09 08:29:13.474 21144-21144/com.example.khan.abc D/AndroidRuntime: Shutting down VM
07-09 08:29:13.475 21144-21144/com.example.khan.abc E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.khan.abc, PID: 21144
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.app.FragmentActivity.onBackPressed()' on a null object reference
     at com.example.khan.abc.AudioFragment$1.onClick(AudioFragment.java:125)
     at android.view.View.performClick(View.java:4848)
     at android.view.View$PerformClick.run(View.java:20262)
     at android.os.Handler.handleCallback(Handler.java:815)
     at android.os.Handler.dispatchMessage(Handler.java:104)
     at android.os.Looper.loop(Looper.java:194)
     at android.app.ActivityThread.main(ActivityThread.java:5631)
     at java.lang.reflect.Method.invoke(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:372)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
07-09 08:29:15.195 21144-21144/com.example.khan.abc I/Process: Sending signal. PID: 21144 SIG: 9

这部分日志向您展示了很多信息:

  • 问题发生时:07-09 08:29:13.475

检查问题发生的时间非常重要...您可能会在日志中发现多个错误...您必须确保检查正确的消息:)

  • 哪个应用程序崩溃了:com.example.khan.abc

这样,您就知道哪个应用程序崩溃了(以确保您正在检查有关邮件的日志)

  • 哪个错误:java.lang.NullPointerException

NULL指针异常错误

  • 有关错误的详细信息:Attempt to invoke virtual method 'void android.support.v4.app.FragmentActivity.onBackPressed()' on a null object reference

您尝试从onBackPressed()对象调用方法FragmentActivity。但是,当您执行此操作时,该对象为null

  • 堆栈跟踪:堆栈跟踪显示方法调用顺序...有时,错误发生在调用方法中(而不是在被调用的方法中)。

    at com.example.khan.abc.AudioFragment $ 1.onClick(AudioFragment.java:125)

文件com.example.khan.abc.AudioFragment.java中的错误发生在onClick()方法内的第125行(堆栈跟踪显示发生错误的行)

它被称为:

at android.view.View.performClick(View.java:4848)

被称为:

at android.view.View$PerformClick.run(View.java:20262)

由以下人员召集:

at android.os.Handler.handleCallback(Handler.java:815)

等...

<强>概述

这只是一个概述...并非所有日志都很简单等...只是分享想法并为您提供入门级信息......

我希望我能帮助你... 此致

答案 1 :(得分:0)

•删除MFP的现有文件夹,名称为:cordova-plugin-mfp(MFP插件的旧版本)

•现在运行此命令并安装最新版本的mfp –“ cordova插件添加cordova-plugin-mfp@8.0.2018112111”

•现在,通过导航到该路径并打开mfp文件夹内的Plugin.xml文件,重新检查版本:D:******* 8 \ FMB_1128_MFP8 \ plugins \ cordova-plugin-mfp \ plugins.xml

•您将在这里看到这样的版本:version =“ 8.0.2018112111”“ 8.0代表MFP-8:2018:更新年份:11:更新月份

通过执行以下步骤,您将解决android-p版本–“ 9”上的应用程序崩溃问题