Crashlytics-Firebase 崩溃报告没有意义[重复]

Posted

技术标签:

【中文标题】Crashlytics-Firebase 崩溃报告没有意义[重复]【英文标题】:Crashlytics-Firebase crash report doesn't make sense [duplicate] 【发布时间】:2020-03-13 03:07:51 【问题描述】:

我有一个崩溃报告如下:

Fatal Exception: java.lang.NullPointerException: Attempt to read from field 'android.view.View androidx.recyclerview.widget.RecyclerView$c0.a' on a null object reference
at com.xx.xx.Fragment$23$1.run(TestFragment.java:4)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)

如何找到androidx.recyclerview.widget.RecyclerView$c0.a?崩溃发生在哪里?

与 NullPointerExceptions 完全无关。这个问题是关于在崩溃日志中未对类进行符号化时在 Crashlytics 报告中查找变量名称。

【问题讨论】:

完全没有关系,你看不懂吗?它是关于在崩溃日志中没有符号化类时在 Crashlytics 报告中查找变量名称。 嗯,崩溃报告说它发生在TestFragment.java 的第 4 行。首先查看该文件,并在问题中包含相关部分? @DanGetz 报告没有符号化,在第 4 行没有任何内容,否则我不会问。该问题已得到解答。 【参考方案1】:

查看报告中的下一行:

at com.xx.xx.Fragment$23$1.run(TestFragment.java:4)

$23$1 是片段中第 23 个内部类中的第一个内部类。从堆栈跟踪来看,它看起来像是一个 Runnable 发布到 Handler

您的RecyclerView 在那里为空,但如果您想解码混淆名称c0.a 对应的特定字段,请查看属于该构建的mapping.txt(可以在构建/输出中找到/映射目录)。

【讨论】:

非常感谢,这不适合人类)我得到了他的:androidx.recyclerview.widget.RecyclerView$ViewHolder -> androidx.recyclerview.widget.RecyclerView$c0: boolean mInChangeScrap -> o int mIsRecyclableCount - > m int mFlags -> j long mItemId -> e androidx.recyclerview.widget.RecyclerView mOwnerRecyclerView -> r java.util.List FULLUPDATE_PAYLOADS -> s androidx.recyclerview.widget.RecyclerView$Recycler mScrapContainer -> n android.view.View itemView -> 一个 这不应该被 Crashlytics 发现吗?也许我应该以某种方式提交地图?再次非常感谢!我想我找到了这个地方,很棒的帮助! 通常fabric/crashlytics gradle插件负责映射文件是的。 “你的 RecyclerView 在那里是空的” – 嗯,我不是这么读的:Attempt to read from field '...View ...RecyclerView$c0.a' on a null object reference。这意味着RecyclerView$c0 为空,而不是RecyclerView,是吗?一个空的ViewHolder。 Anyhoo,只是吹毛求疵。干杯! @MikeM 代码是问题:new Handler().postDelayed(new Runnable() public void run() mRvFilters.scrollToPosition(0); new Handler().postDelayed(new Runnable( ) public void run() mRecycleView.findViewHolderForAdapterPosition(pos).itemView .performClick(); , 300); , 400);

以上是关于Crashlytics-Firebase 崩溃报告没有意义[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从 Appcenter 创建构建时,FirebaseCrashlytics 崩溃不报告崩溃

TestFlight 崩溃报告

Firebase 崩溃报告上传错误

在 iOS 上使用多个崩溃报告器

如何在 XCode 中查看崩溃报告

WinCrashReport(系统崩溃报告器)