当收到视频电话消息时,cn.wildfirechat.message模块 crash

cam 11月前 334

当收到视频电话消息时,app crash,哪位大佬帮忙指点一下,谢谢! 日志如下:

E/AndroidRuntime(13122): java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
E/AndroidRuntime(13122):    at java.util.ArrayList.get(ArrayList.java:437)
E/AndroidRuntime(13122):    at cn.wildfirechat.message.CallStartMessageContent.encode(CallStartMessageContent.java:134)
E/AndroidRuntime(13122):    at cn.wildfirechat.imclient.ImclientPlugin.convertMessage(ImclientPlugin.java:2213)
E/AndroidRuntime(13122):    at cn.wildfirechat.imclient.ImclientPlugin.convertMessageList(ImclientPlugin.java:2229)
E/AndroidRuntime(13122):    at cn.wildfirechat.imclient.ImclientPlugin.access$000(ImclientPlugin.java:94)
E/AndroidRuntime(13122):    at cn.wildfirechat.imclient.ImclientPlugin$2.onSuccess(ImclientPlugin.java:493)
E/AndroidRuntime(13122):    at cn.wildfirechat.remote.ChatManager$21.lambda$onSuccess$0(ChatManager.java:3018)
E/AndroidRuntime(13122):    at cn.wildfirechat.remote.ChatManager$21$$ExternalSyntheticLambda1.run(Unknown Source:4)
E/AndroidRuntime(13122):    at android.os.Handler.handleCallback(Handler.java:900)
E/AndroidRuntime(13122):    at android.os.Handler.dispatchMessage(Handler.java:103)
E/AndroidRuntime(13122):    at android.os.Looper.loop(Looper.java:219)
E/AndroidRuntime(13122):    at android.app.ActivityThread.main(ActivityThread.java:8673)
E/AndroidRuntime(13122):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(13122):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
E/AndroidRuntime(13122):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
最新回复 (18)
  • x86 11月前
    引用 2
    有做过什么改动吗?最新 demo 上,能否复现?
  • cam 11月前
    引用 3
    感谢您的关注!
    我用的是野火flutter版本,代码是从这儿下载的:https://github.com/wildfirechat/wfc_flutter_plugins
    应该是最新的代码,sdk里的代码没有做过改动
  • HeavyRain 11月前
    引用 4
    感觉像是拨打方发送的来电通知有问题,请问拨打方是哪一端?
  • cam 11月前
    引用 5
    拨打方,走的是我们自己的服务器,是自定义消息。
    来电通知消息有固定的数据格式吗?
  • cam 11月前
    引用 6

    来电通知的内容

    上传的附件:
  • x86 11月前
    引用 7
    targetIds 不能为null,可以为[]
  • HeavyRain 11月前
    引用 8
    如果要自定义消息,可以用一个新的消息类型,建议不要改原来的类型,如果要是改的话,也是只能扩展不能修改和删除
  • cam 11月前
    引用 9
    非常感谢你们的建议, 
  • cam 11月前
    引用 10
    im服务器端已经设置了targetIds,是通过调用:conversation.setTarget(receiveId);
    但是app端targetIds却是null,不知道是啥原因。
  • x86 11月前
    引用 11
    通过 server api 发送的是 MessagePayload,你看下 客户端 CallStartMessageContent.encode() 出来的格式是什么样子
  • cam 11月前
    引用 12
    这个java代码在client-release.aar里,我无法修改这个java库里的代码,我不知道如何才能看到这个MessagePayload数据呀
  • x86 11月前
    引用 13

    这部分代码是开源的,见 CallStartMessageContent

  • cam 11月前
    引用 14

    MessagePayload数据

  • cam 11月前
    引用 15
    这个数据是通过flutter ios版本截取的,你们帮忙看下哈
  • x86 11月前
    引用 16

    你发的消息不对,callId都是空的,如果需要通过 server api 来发送的话,消息格式,要参考MessageCallStartContent#encode的结果来构建。

  • HeavyRain 11月前
    引用 17
    其实这个消息不应该是从服务器发出来的。你们要做什么业务,可以描述一些我们给想想办法
  • cam 11月前
    引用 18
    我们准备做视频电话业务,收到来电消息接听。这个消息应该是从哪里发出呢?
  • HeavyRain 11月前
    引用 19
    cam 我们准备做视频电话业务,收到来电消息接听。这个消息应该是从哪里发出呢?
    详细描述一下业务流程
返回