我有一个没有错误编译的Cordova应用程序。但是,当我将应用程序午餐到我的Android设备时,它会在启动时立即崩溃。当我不知道bug是什么时,我很难调试...
问题:有没有办法从崩溃中获取错误报告?
我通常使用chrome来调试我的应用程序,但只有在应用程序能够在设备上加载和运行时才有效。
你请求了一些关于logcat的文章...我在回答部分,因为它是太多的评论信息:)
DOCS
对于Android,您可以随时访问开发人员的页面。
HERE是关于logcat的Android页面
如果你使用android Studio,你也可以检查这个LINK。
捕获
基本上,您可以使用以下命令捕获logcat:
adb logcat
你可以添加很多参数来帮助你过滤和显示你想要的消息...这是个人的...我总是使用下面的命令来获取消息时间戳:
adb logcat -v time
您可以将输出重定向到文件并在文本编辑器中进行分析。
分析
如果你的应用程序是Crashing,你会得到类似的东西:
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
。
文件com.example.khan.abc.AudioFragment.java
发生错误,在onClick()
方法内部行:125
(stacktrace显示错误发生的行)
它被称为:
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)
等等....
概观
这只是一个概述......并非所有日志都很简单等......只是分享想法并为您提供入门级信息......
我希望我可以帮助你... ...问候
•删除MFP的现有文件夹命名为:cordova-plugin-mfp(旧版MFP插件)
•现在运行此命令并安装最新版本的mfp - “cordova plugin add [email protected]”
•现在通过导航到此路径并在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 version -'9'