从通道对象获取最后消息时引用空对象-Twilio可编程聊天Android SDK

从通道对象获取最后消息时引用空对象-Twilio可编程聊天Android SDK,android,twilio,twilio-programmable-chat,Android,Twilio,Twilio Programmable Chat,所以这是关于 java.lang.NullPointerException 在Android中使用Twilio可编程聊天SDK时 我有一个片段,我在其中获取通道列表,在单击特定通道时,我将通道sid从片段传递到活动,在活动中,我使用该sid再次从客户端获取通道,但当我尝试从通道获取最后一条消息时,我将获得 java.lang.NullPointerException: Attempt to invoke virtual method 'void com.twilio.chat.Messages.

所以这是关于

java.lang.NullPointerException

在Android中使用Twilio可编程聊天SDK时

我有一个片段,我在其中获取通道列表,在单击特定通道时,我将通道sid从片段传递到活动,在活动中,我使用该sid再次从客户端获取通道,但当我尝试从通道获取最后一条消息时,我将获得

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.twilio.chat.Messages.getLastMessages(int, com.twilio.chat.CallbackListener)' on a null object reference
神秘的是,当我使用“将调试器附加到android进程”时,我可以看到错误,我可以在调试器打开的情况下获取对象和消息。我相信这与线程有关

这是代码

myChannel.getMessages().getLastMessages(50, new CallbackListener<List<Message>>() {
                          @Override
                          public void onSuccess(List<Message> messages) {
                              mMessagesAdapter.setMessages(mMessages);
                              setMessageInputEnabled(true);
                              mWriteMessageEditText.requestFocus();
                          }

                          @Override
                          public void onError(ErrorInfo errorInfo) {
                              Log.e(TAG, "error" + errorInfo.getMessage());

                          }
                      });
myChannel.getMessages().getLastMessages(50,新CallbackListener()){
@凌驾
成功时公共无效(列出消息){
设置消息(mMessages);
setMessageInputEnabled(true);
mWriteMessageEditText.requestFocus();
}
@凌驾
公共无效onError(错误信息错误信息){
Log.e(标记“error”+errorInfo.getMessage());
}
});
另外,我通过Twilio的文档了解到,我必须在Channel对象上使用同步方法。使用方法“myChannel.getMessages()”。 文档链接: 我附上一张截图:

我相信我必须首先使用一些方法来进行同步,但我没有看到任何方法可以做到这一点。 如何同步?我应该使用什么代码

请帮帮我。
提前感谢

首先在频道上加入(),然后您可以使用此内部状态监听器我尝试了这种方式,它会给我成员已存在错误,因为我已在以前的片段中加入。在调用getMessages()之前,您是否检查了同步状态?是的,它给了我com.twilio.chat.channel.SynchronizationStatus.ALL=(3)如果(mcchannel.getSynchronizationStatus()==Channel.SynchronizationStatus.ALL),我在onSynchronizationChanged方法中实现了getChannelMessage函数,现在它正在工作,但需要时间