Closed wyasher closed 1 year ago
W/System.err(29275): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.Class.newInstance()' on a null object reference
W/System.err(29275): at cn.wildfirechat.remote.ChatManager.messageContentFromPayload(ChatManager.java:8206)
W/System.err(29275): at cn.wildfirechat.imclient.ImclientPlugin.messageContentFromMaps(ImclientPlugin.java:717)
W/System.err(29275): at cn.wildfirechat.imclient.ImclientPlugin.sendMessage(ImclientPlugin.java:724)
W/System.err(29275): at java.lang.reflect.Method.invoke(Native Method)
W/System.err(29275): at cn.wildfirechat.imclient.ImclientPlugin.onMethodCall(ImclientPlugin.java:242)
W/System.err(29275): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:258)
W/System.err(29275): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
W/System.err(29275): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
W/System.err(29275): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
W/System.err(29275): at android.os.Handler.handleCallback(Handler.java:873)
W/System.err(29275): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err(29275): at android.os.Looper.loop(Looper.java:222)
W/System.err(29275): at android.app.ActivityThread.main(ActivityThread.java:7448)
W/System.err(29275): at java.lang.reflect.Method.invoke(Native Method)
W/System.err(29275): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:500)
W/System.err(29275): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:865)
错误内容如上
public MessageContent messageContentFromPayload(MessagePayload payload, String from) {
MessageContent content = null;
try {
content = (MessageContent)((Class)this.messageContentMap.get(payload.type)).newInstance();
if (content instanceof CompositeMessageContent) {
((CompositeMessageContent)content).decode(payload, this);
} else {
Log.e(TAG, "decode");
((MessageContent)content).decode(payload);
}
if (content instanceof NotificationMessageContent) {
if (content instanceof RecallMessageContent) {
RecallMessageContent recallMessageContent = (RecallMessageContent)content;
if (recallMessageContent.getOperatorId().equals(this.userId)) {
((NotificationMessageContent)content).fromSelf = true;
}
} else if (from.equals(this.userId)) {
((NotificationMessageContent)content).fromSelf = true;
}
}
((MessageContent)content).extra = payload.extra;
} catch (Exception var5) {
Log.e(TAG, "decode message error, fallback to unknownMessageContent. " + payload.type);
var5.printStackTrace();
// 这里自定义消息未处理 messageContentMap 中只注册了系统默认的消息
if (content == null) {
return null;
}
if (((MessageContent)content).getPersistFlag() != PersistFlag.Persist && ((MessageContent)content).getPersistFlag() != PersistFlag.Persist_And_Count) {
return null;
}
content = new UnknownMessageContent();
((UnknownMessageContent)content).setOrignalPayload(payload);
}
return (MessageContent)content;
}
如上,android版本有这个问题,ios上自定义消息得到解决