Android 从Crashlytics崩溃报告中查找源代码中的视图id

Android 从Crashlytics崩溃报告中查找源代码中的视图id,android,listview,adapter,Android,Listview,Adapter,我发布了一个内置Crashlytics的应用程序来发送崩溃报告,以下是我收到的报告: 致命异常:java.lang.IllegalStateException:适配器的内容已更改,但ListView未收到通知。 确保适配器的内容不是从后台线程修改的,而是仅从UI线程修改的。确保适配器在其内容更改时调用notifyDataSetChanged。[在ListView2131493375中,使用Adapterclass com.nhatnq.app.b.cr对android.widget.ListVi

我发布了一个内置Crashlytics的应用程序来发送崩溃报告,以下是我收到的报告:

致命异常:java.lang.IllegalStateException:适配器的内容已更改,但ListView未收到通知。 确保适配器的内容不是从后台线程修改的,而是仅从UI线程修改的。确保适配器在其内容更改时调用notifyDataSetChanged。[在ListView2131493375中,使用Adapterclass com.nhatnq.app.b.cr对android.widget.ListView进行分类] 在android.widget.ListView.layoutChildrenListView.java 在android.widget.AbsListView.onLayoutAblistView.java

我想知道是哪个Apdater/ListView导致了这次崩溃,所以我想从以下方面进行跟踪:

com.nhatnq.app.b.cr:包名被隐藏,我不知道。在我的应用程序中,我在com.nhatnq.app.contact.ExpandableContactAdapter.java包中有一个ExpandableContactAdapter extends BaseExpandableListAdapter,以及一些包含适配器的片段,例如com.nhatnq.app.fragment.HistoryFragment$ExpandableHistoryAdapter, com.nhatnq.app.fragment.MessageFragment$ExpandableMessageAdapter

ListView2131493375:这是ListView的ID。我将其从dec转换为十六进制,然后在我的本地源代码R.java中查找,但没有找到此资源ID。可能在发布时,ID是由时间键编码的

我需要在这里检查什么,以找到正确的ListView/适配器,然后才能检查?现在我有5个适配器,真的不知道需要检查什么,因为这个问题只发生在一些手机上。
我在一个团队中工作,其他人负责从团队源代码发布应用程序。

您的发布人员可能正在使用Proguard或类似的东西,因此类名为obsfucated class com.nhatnq.app.b.cr。这是一个过程,它使人们更难对您的代码进行反向工程

您需要让他对代码进行回溯或除臭,以便正确识别该类。他应保留执行此操作的文件,对于Proguard,以下是参考:


只需检查所有适配器,并找出您试图在后台线程中更新它的适配器。可能在crashlytics中,您将获得所有详细信息,包括类名和行。在崩溃报告中找不到行,这就是为什么我无法确切知道适配器出现了什么问题:因为我有一个根视图滑动菜单,当这个视图显示layoutChildren时,其中一个适配器崩溃了,所以这里没有行代码。哇,我不知道我可以从Produard映射文件中追溯,谢谢。现在我可以找到导致崩溃的适配器。