wildfirechat / android-chat

即时通讯,聊天,野火IMAndroid客户端,支持Android 4.x —— 最新
http://docs.wildfirechat.cn
Other
2.54k stars 890 forks source link

用户被其他用户挤下弹回登陆界面出现空指针崩溃错误 #610

Closed Neroliuxx closed 2 years ago

Neroliuxx commented 2 years ago

392be934bf10fa55ddfcdc96496bf2c 这个错误之前我记得也小概率出现于过从单聊界面退出回会话列表的情况,根据其中一次版本更新https://github.com/wildfirechat/android-chat/commit/a8616b4bf4536b5913912293ca1098a854267b63这种情况已经解决。

Neroliuxx commented 2 years ago

出现崩溃问题存在于 messageViewModel.saveDraft(conversation, draft); 具体流程是在聊天界面被弹回登录界面情况。从列表界面弹出是没问题的。

imndx commented 2 years ago

是最新代码吗?这个感觉修复了

Neroliuxx commented 2 years ago

之前情况是聊天页面返回列表页面会出现空指针,这个情况我更新过代码已经解决了。现在是聊天页面返回最初的登陆界面又出现空指针报错,且是可复现的,是否是client已经断连了又调用了savedraft方法呢。

imndx commented 2 years ago

之前情况是聊天页面返回列表页面会出现空指针,这个情况我更新过代码已经解决了。现在是聊天页面返回最初的登陆界面又出现空指针报错,且是可复现的,是否是client已经断连了又调用了savedraft方法呢。

这个应当也处理了,我们 demo 上能复现不?

        @Override
        public void setConversationDraft(int conversationType, String target, int line, String draft) throws RemoteException {
            ConversationInfo conversationInfo = getConversation(conversationType, target, line);
            if (conversationInfo == null){
                return;
            }
            if ((TextUtils.isEmpty(conversationInfo.draft) && TextUtils.isEmpty(draft)) || TextUtils.equals(conversationInfo.draft, draft)) {
                return;
            }
            ProtoLogic.setConversationDraft(conversationType, target, line, draft);
        }
Neroliuxx commented 2 years ago

已经解决了,确实是我提出的想法,没有判断conversationInfo 是否存在。