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 崩溃报告没有意义[重复]的主要内容,如果未能解决你的问题,请参考以下文章