2017-03-11 59 views
1

我想在私人對話框中發送文本消息,一切工作正常,直到我創建私人對話框,但當我發送文本消息,然後我得到此錯誤「試圖調用虛擬方法'無效com.quickblox.chat.QBAbstractChat.sendMessage(com.quickblox.chat.model.QBChatMessage)' 上的空對象引用」QUICKBLOX嘗試在空對象上調用虛擬方法sendMessage參考

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    final Context context = this; 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 



    QBSettings.getInstance().init(getApplicationContext(), APP_ID, AUTH_KEY, AUTH_SECRET); 
    QBSettings.getInstance().setAccountKey(ACCOUNT_KEY); 

    QBChatService.setDebugEnabled(true); 
    final QBChatService chatService = QBChatService.getInstance(); 
    final QBUser qbUser = new QBUser("shahzeb", "shahzeb143"); 
    QBAuth.createSession(qbUser).performAsync(new QBEntityCallback<QBSession>() { 
     @Override 
     public void onSuccess(QBSession qbSession, Bundle bundle) { 
      qbUser.setId(qbSession.getUserId()); 


      chatService.login(qbUser, new QBEntityCallback() { 
       @Override 
       public void onSuccess(Object o, Bundle bundle) { 


        final QBChatDialog dialog = DialogUtils.buildPrivateDialog(25024405); 
        QBRestChatService.createChatDialog(dialog).performAsync(new QBEntityCallback<QBChatDialog>() { 
         @Override 
         public void onSuccess(QBChatDialog qbChatDialog, Bundle bundle) { 

          QBChatMessage chatMessage = new QBChatMessage(); 
          chatMessage.setSenderId(qbUser.getId()); 
          chatMessage.setBody("Hi there!"); 
          try { 
           dialog.sendMessage(chatMessage); 
          } catch (SmackException.NotConnectedException e) { 
           e.printStackTrace(); 
          } 
         } 

         @Override 
         public void onError(QBResponseException e) { 

         } 
        }); 
       } 

       @Override 
       public void onError(QBResponseException e) { 

       } 
      }); 
     } 

     @Override 
     public void onError(QBResponseException e) { 

     } 
    }); 

} 

}

回答

4

必須調用方法的sendMessage(.. )'qbChatDialog'model not'dialog',或者你必須使用dialog.initForChat(QBChatService.getInstance())來初始化'對話'聊天。在發送消息之前。見QuickBlox documentation

相關問題