Cordova 应用程序可以编译,但在运行时崩溃。如何获取错误报告?

2024-01-09

我有一个 Cordova 应用程序,编译时没有错误。然而,当我将应用程序加载到我的 Android 设备上时,它在启动时立即崩溃。当我不知道错误是什么时,我很难进行调试......

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

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


您请求一些关于 logcat 的文章...我将其放入答案部分,因为评论信息太多:)

DOCS

对于 Android,您可以随时访问开发者页面。

HERE https://developer.android.com/studio/command-line/logcat.html是Android关于logcat的页面

如果你使用android Studio,你还可以检查这个LINK https://developer.android.com/studio/debug/index.html#systemLogView.

捕捉

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

adb logcat

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

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

空指针异常错误

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

您尝试调用方法onBackPressed() from a FragmentActivity目的。然而,那个物体是null当你这样做的时候。

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

    在 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)

etc....

Overview

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

我希望我能以某种方式帮助你...... 问候

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cordova 应用程序可以编译,但在运行时崩溃。如何获取错误报告? 的相关文章

随机推荐

  • 为什么我们需要将压缩对象转换为列表

    我正在尝试完成一个数据营练习 其中我需要将 2 个列表转换为zip object然后进入一个dict最终得到一个dataframe使用熊猫 但是 如果我使用zip 对列表进行函数并将它们转换为字典 然后转换为数据框 我没有得到任何错误 但简
  • 如何检查 bash 脚本中是否以 root 身份运行

    我正在编写一个需要 root 级别权限的脚本 并且我想这样做 以便如果该脚本不以 root 身份运行 它只是回显 请以 root 身份运行 并退出 这是我正在寻找的一些伪代码 if whoami root then echo Please
  • 如何使用 Excel 在 Outlook 365 Exchange 中引用组或共享日历?

    我正在尝试让多个用户能够使用 Excel 将约会添加到共享日历 以下代码对我有用 我拥有共享日历 它位于 Outlook365 中的我的日历文件夹中 Sub CreateAppt Const olFolderCalendar 9 Const
  • 如何在 Dart 中创建一个空白的 Future + 如何返回当前正在进行的 Future?

    我正在尝试创建一个服务器端 Dart 类来执行各种与数据相关的任务 所有这些任务都依赖于首先初始化的数据库 问题是数据库的初始化是异步发生的 返回 Future 我首先尝试将初始化代码放入构造函数中 但放弃了这种方法 因为它似乎不可行 我现
  • 如何通过java代码在属性文件中写入值

    我有一个问题 我有一个属性文件 我想在该文件中存储一些值 并在需要时在代码中实现 有什么办法可以做到这一点吗 我在用Properties类来做到这一点 使用加载属性文件java util Properties http docs oracl
  • 为什么我无法将 firebase 电子邮件密码登录链接到 google 登录?

    我已经成功实施了Firebase Google 登录 https firebase google com docs auth android google signin在我的 Android 应用程序中 它工作正常 但是 我希望用户也使用电
  • 获取与 SIM 卡关联的电话号码

    如何获取与 CMDA 和 GSM 的 SIM 卡关联的电话号码以及服务提供商名称 Android TelephonyManager 可能不会在所有情况下都返回号码 如果运营商未设置号码 它可能不会返回号码 您必须创建一个验证场景 要求用户输
  • 如何向 Spark RDD 添加新列?

    我有一个 RDDMANY列 例如 hundreds 如何在此 RDD 的末尾添加一列 例如 如果我的 RDD 如下所示 123 523 534 893 536 98 1623 98472 537 89 83640 9265 7297 983
  • 更新(重新部署)现有的 azure webjob

    我创建了一个按需网络作业 在管理门户中 没有上传新 zip 或更新它的选项 我可以删除现有的网络作业并创建一个新的网络作业 但我想保留我的日志 有没有办法重新部署它 覆盖旧版本 维护日志 您可以通过 FTP 连接到 Webjob 所在的网站
  • 为什么 data-* 属性比普通 ID 属性更适合用于元素选择?

    Cypress https docs cypress io guides references best practices html Selecting Elements和许多其他关于测试 Web 应用程序的帖子建议依赖像这样的数据属性d
  • 原深感摄像头的拍摄范围是多少?

    前置原深感摄像头可以检测到的最小和最大距离是多少 When 检测深度数据 https developer apple com documentation avfoundation cameras and media capture stre
  • WPF - 延迟多重绑定

    我有一个多重绑定 看起来像这样
  • 如何在 Postgres 中获取时间间隔的平均值

    我正在使用 PostgreSQL 9 6 我有一个这样的表 mac sn loc time date vin1 vin2 vin3 1a34 4as11111111 aaaa 7 06 18 1 1 2018 447 42 472 32 6
  • 如何从 xcode 获取自己的应用程序版本?

    我想知道是否有办法在将其放入 xCode 中的 Summary 选项卡后 在代码中获取自己的应用程序版本 一种方法似乎是搜索Info plist for CFBundleVersion关键 但是还有其他更简单 更方便的方法吗 您可以在主包中
  • VB.NET LINQ 按多列分组

    我有以下 LINQ 代码 该代码有语法错误 但我不知道如何修复它 Dim query From row In mainDatatable AsEnumerable the syntax Error is in the following l
  • 保持当前页面呈现,直到加载下一页

    我有一个基于 WebView loadUrl http www example com http www example com 当用户单击 URL 时 默认行为是立即显示空白页面 等待页面加载 然后显示此页面 我设法显示启动屏幕来代替空白
  • POSIX TIMER - 有多个计时器

    我试图在我的系统中有两个计时器用于两个不同的目的 但我不明白为什么它不起作用 有人可以帮助我吗 另外 处理程序代码是否应该是最低限度的 以便任务本身不会干扰滴答声 我还可以定义单独的处理程序吗 include
  • 如何在客户注册表中添加地址字段?

    我使用的是magento 1 6 我想在客户注册表上显示地址字段 我从 register phtml 中删除了以下几行 但它不起作用 所以我该怎么做 如果您使用的是 magento 1 6 或更高版本 并且只需在customers form
  • One-hot 编码多级列数据

    我有以下数据框 其中包含有关不同主题的特征的记录 ID Feature 1 A 1 B 2 A 1 A 3 B 3 B 1 C 2 C 3 D 我想获得另一个 聚合的 数据帧 其中每一行代表一个特定主题 并且有所有单热编码功能的详尽列表 I
  • Cordova 应用程序可以编译,但在运行时崩溃。如何获取错误报告?

    我有一个 Cordova 应用程序 编译时没有错误 然而 当我将应用程序加载到我的 Android 设备上时 它在启动时立即崩溃 当我不知道错误是什么时 我很难进行调试 问题 有没有办法从这次崩溃中获取错误报告 我通常使用 Chrome 来