java - Quickblox 登录无法使用 3.3.1 sdk

标签 java android session quickblox quickblox-android

我已经集成了 QuickBlox,一切正常,突然出现此错误。我试图弄清楚它为什么会出现,但没有得到任何解决方案。

我的代码:

ChatHelper.getInstance().login(user, new QBEntityCallback<Void>() {
            @Override
            public void onSuccess(Void result, Bundle bundle) {
                if(progressDialog!=null)
                    progressDialog.dismiss();
                loginToChat();
                android.util.Log.e(TAG, "QB Chat Login successfully");
            }

            @Override
            public void onError(QBResponseException e) {
                android.util.Log.e(TAG, "Error Login in Home Screen>>>" +e);
                if(progressDialog!=null)
                    progressDialog.dismiss();

            }
        });



private void loginToChat() {
        if(SharedPrefsHelper.getInstance().getQbUser()!=null){
            final QBUser user = SharedPrefsHelper.getInstance().getQbUser();
            ChatHelper.getInstance().loginToChat(user, new QBEntityCallback<Void>() {
                @Override
                public void onSuccess(Void result, Bundle bundle) {
                    android.util.Log.v(TAG, "Chat login onSuccess()");

                }

                @Override
                public void onError(QBResponseException e) {

                    android.util.Log.w(TAG, "Chat login onError(): " + e);


                }
            });
        }
    }

日志猫:

 > D/QBASDK: *********************************************************
    >                                                            *** RESPONSE *** b4c54adf-b802-4327-b74b-96cc3fc5314d ***
    >                                                            STATUS : 201 
    >                                                            HEADERS
    >                                                                X-Runtime=0.012808
    >                                                                Cache-Control=max-age=0, private, must-revalidate
    >                                                                QuickBlox-REST-API-Version=0.1.1
    >                                                                X-Android-Selected-Protocol=http/1.1
    >                                                                QB-Token-ExpirationDate=2017-06-07 13:56:00 UTC
    >                                                                Status=201 Created
    >                                                                X-Request-Id=4a8acb4c-6166-42c0-b85a-a038d61af56b
    >                                                                X-Android-Response-Source=NETWORK 201
    >                                                                Connection=Close
    >                                                                X-Android-Sent-Millis=1496836559559
    >                                                                Content-Type=application/json; charset=utf-8
    >                                                                Date=Wed, 07 Jun 2017 11:56:00 GMT
    >                                                                X-Content-Type-Options=nosniff
    >                                                                Server=openresty/1.9.15.1
    >                                                                ETag=W/"c74341ada523f27d4d495a2443d502a6"
    >                                                                Content-Length=239
    >                                                                Strict-Transport-Security=max-age=31536000max-age=15768000;
    >                                                                X-XSS-Protection=1; mode=block
    >                                                                X-Frame-Options=SAMEORIGIN
    >                                                                X-Android-Received-Millis=1496836559866
    >                                                                Access-Control-Allow-Origin=*
    >                                                            BODY
    >                                                                '{"session":{"application_id":52126,"created_at":"2017-06-07T11:56:00Z","id":170143275,"nonce":-982948609,"token":"76c7ad273008bd4d1a3b87fd80551e046b00cb9e","ts":1496836558,"updated_at":"2017-06-07T11:56:00Z","user_id":0,"_id":"170143275"}}'
    > 06-07 17:25:59.937 4348-4348/com.talktotherapist D/AndroidRuntime:
    > Shutting down VM
    >                                                                    
    >                                                                    
    >                                                                    [ 06-07 17:25:59.937  2014: 4508 D/         ]
    >                                                                     x = 0.110770,  y = 0.138312,  z = 10.251881 06-07 17:25:59.958 4348-4451/com.talktotherapist D/SettingsInterface:  from settings
    > cache , name = android_id , value = 8dc776344146c84 06-07 17:26:00.119
    > 4348-4451/com.talktotherapist D/SettingsInterface:  from settings
    > cache , name = android_id , value = 8dc776344146c84 06-07 17:26:00.123
    > 4348-4451/com.talktotherapist D/SettingsInterface:  from settings
    > cache , name = android_id , value = 8dc776344146c84 06-07 17:26:00.123
    > 4348-4451/com.talktotherapist D/SettingsInterface:  from settings
    > cache , name = android_id , value = 8dc776344146c84 06-07 17:26:00.123
    > 4348-4451/com.talktotherapist D/SettingsInterface:  from settings
    > cache , name = android_id , value = 8dc776344146c84 06-07 17:26:00.123
    > 4348-4451/com.talktotherapist D/SettingsInterface:  from settings
    > cache , name = android_id , value = 8dc776344146c84 06-07 17:26:00.124
    > 4348-4451/com.talktotherapist D/SettingsInterface:  from settings
    > cache , name = android_id , value = 8dc776344146c84
    >                                                                       
    >                                                                       --------- beginning of crash 06-07 17:26:00.127 4348-4348/com.talktotherapist E/AndroidRuntime: FATAL EXCEPTION: main
    >                                                                    Process: com.talktotherapist, PID: 4348
    >                                                                    java.lang.NullPointerException: Attempt to invoke virtual method 'long
    > java.util.Date.getTime()' on a null object reference
    >                                                                        at java.util.Calendar.setTime(Calendar.java:1197)
    >                                                                        at java.text.SimpleDateFormat.formatImpl(SimpleDateFormat.java:527)
    >                                                                        at java.text.SimpleDateFormat.format(SimpleDateFormat.java:829)
    >                                                                        at java.text.DateFormat.format(DateFormat.java:314)
    >                                                                        at
    > com.google.gson.DefaultDateTypeAdapter.write(DefaultDateTypeAdapter.java:88)
    >                                                                        at
    > com.google.gson.DefaultDateTypeAdapter.write(DefaultDateTypeAdapter.java:40)
    >                                                                        at
    > com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:69)
    >                                                                        at
    > com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:125)
    >                                                                        at
    > com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:243)
    >                                                                        at com.google.gson.Gson.toJson(Gson.java:669)
    >                                                                        at com.google.gson.Gson.toJson(Gson.java:648)
    >                                                                        at com.google.gson.Gson.toJson(Gson.java:603)
    >                                                                        at com.google.gson.Gson.toJson(Gson.java:583)
    >                                                                        at com.quickblox.auth.session.b.save(Unknown Source)
    >                                                                        at
    > com.quickblox.auth.session.QBSessionManager.setActiveSession(Unknown
    > Source)
    >                                                                        at
    > com.quickblox.auth.session.QBSessionJsonParser.extractEntity(Unknown
    > Source)
    >                                                                        at
    > com.quickblox.auth.session.QBSessionJsonParser.extractEntity(Unknown
    > Source)
    >                                                                        at com.quickblox.core.parser.QBJsonParser.parse(Unknown Source)
    >                                                                        at
    > com.quickblox.auth.session.Query$VersionEntityCallback.completedWithResponse(Unknown
    > Source)
    >                                                                        at com.quickblox.auth.session.Query.completedWithResponse(Unknown
    > Source)
    >                                                                        at
    > com.quickblox.core.server.HttpRequestRunnable$1.handleMessage(Unknown
    > Source)
    >                                                                        at android.os.Handler.dispatchMessage(Handler.java:111)
    >                                                                        at android.os.Looper.loop(Looper.java:207)
    >                                                                        at android.app.ActivityThread.main(ActivityThread.java:5736)
    >                                                                        at java.lang.reflect.Method.invoke(Native Method)
    >                                                                        at
    > com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:910)
    >                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 06-07
    > 17:26:00.152 4348-4455/com.talktotherapist D/OpenGLRenderer:
    > ~CanvasContext() 0x7f983cd000 06-07 17:26:00.154
    > 4348-4455/com.talktotherapist D/OpenGLRenderer: ~CanvasContext()
    > 0x7f85c49000

请指导我如何解决登录问题。

最佳答案

请尝试按照此步骤操作,它非常适合我! 希望对您有所帮助!

首先您需要登录 quickblox。

QBUser user = new QBUser("username", "password");
QBUsers.signIn(user).performAsync(new QBEntityCallback<QBUser>() {
    @Override
    public void onSuccess(QBUser qbUser, Bundle bundle) {
        Log.e("LOGIN ", "myID =" + qbUser.getId());
    }

    @Override
    public void onError(QBResponseException e) {
        Log.e("LOGIN Error", "error..SIGN IN*****");
    }
});

然后使用该用户对象创建 session ,然后登录到聊天服务。

代码如下:

final QBChatService chatService = QBChatService.getInstance();
final QBUser qbuser = new QBUser("username", "password");
QBAuth.createSession(qbuser).performAsync(new QBEntityCallback<QBSession>() {
    @Override
    public void onSuccess(QBSession qbSession, Bundle bundle) {
        user.setId(qbSession.getUserId());
        chatService.login(qbuser, new QBEntityCallback() {
            @Override
            public void onSuccess(Object o, Bundle bundle) {

            }

            @Override
            public void onError(QBResponseException e) {

            }
        });
    }

    @Override
    public void onError(QBResponseException e) {

    }
});

关于java - Quickblox 登录无法使用 3.3.1 sdk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44312706/

相关文章:

java - 为什么我的输出文件名为 'part-r-xxxxx' ,即使我没有提到任何 reducer 类?

java - 为什么 Playscape SDK 找不到 JDK?

Android Imageview 填充屏幕宽度

java - GAE 注销 url 出现错误 404

javascript - 如何在 express、couchDB 和 node.js 中使用 session

Java 正则表达式特殊字符转义

java - 无法使用 JAXB 解码 xml 文件

java - 将 JScrollPane 添加到 JSplitPane

android - 如何在 fragment 之间传递数据

python - flask session : how to create the session table