nim-uikit-android icon indicating copy to clipboard operation
nim-uikit-android copied to clipboard

8.3.1版本 :手动登录时,没有执行任何回调。

Open RavenGluttonous opened this issue 4 months ago • 0 comments

云信版本: nimVersion = '8.3.1' Android studio gradle 版本:8.1.4

异常信息如下:

Accessing hidden method Landroid/app/ActivityManagerNative;->getDefault()Landroid/app/IActivityManager; (greylist, reflection, allowed)
 java.lang.NoSuchMethodException: android.app.IActivityManager$Stub$Proxy.isAppForeground [int]
 	at java.lang.Class.getMethod(Class.java:2072)
 	at java.lang.Class.getMethod(Class.java:1693)
 	at com.netease.nimlib.app.b.a(AppStatusHelper.java:60)
 	at com.netease.nimlib.app.b.a(AppStatusHelper.java:82)
 	at com.netease.nimlib.push.b.c.<init>(NetworkKeeper.java:41)
 	at com.netease.nimlib.push.a.a(AuthManager.java:64)
 	at com.netease.nimlib.push.f.a(PushClient.java:111)
 	at com.netease.nimlib.c.a(SDKCache.java:348)
 	at com.netease.nimlib.c.a(SDKCache.java:230)
 	at com.netease.nimlib.service.NimService.onCreate(NimService.java:54)
 	at android.app.ActivityThread.handleCreateService(ActivityThread.java:4636)
 	at android.app.ActivityThread.access$2800(ActivityThread.java:308)
 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2330)
 	at android.os.Handler.dispatchMessage(Handler.java:110)
 	at android.os.Looper.loop(Looper.java:219)
 	at android.app.ActivityThread.main(ActivityThread.java:8349)
 	at java.lang.reflect.Method.invoke(Native Method)
 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)

代码如下:

    private void IMLogin(String account, String token) {
        LoginInfo info = new LoginInfo(account, token);
        RequestCallback<LoginInfo> callback =
                new RequestCallback<LoginInfo>() {
                    @Override
                    public void onSuccess(LoginInfo param) {
                        MyLogUtil.e(TAG, "网易云信IM登录成功");
                        //手动登录成功,并获取登录状态
                        StatusCode status = NIMClient.getStatus();
                        if (status == StatusCode.LOGINED) {
                            //成功,并同步SDK用户数据
                            NIMClient.getService(AuthServiceObserver.class).observeLoginSyncDataStatus(new Observer<LoginSyncStatus>() {
                                @Override
                                public void onEvent(LoginSyncStatus status) {
                                    if (status == LoginSyncStatus.BEGIN_SYNC) {
                                        //数据同步中
                                    } else if (status == LoginSyncStatus.SYNC_COMPLETED) {
                                        //数据同步完成
                                        NimUIKit.setAccount(account);
                                        unread();
                                        // 构建缓存
                                        DataCacheManager.buildDataCacheAsync();
                                    }
                                }
                            }, true);
                        }
                    }

                    @Override
                    public void onFailed(int code) {
                        if (code == 302) {
                            MyLogUtil.e(TAG, "账号密码错误");
                            // your code
                        } else {
                            // your code
                            MyLogUtil.e(TAG, "账号密码错误:"+code);
                        }
                    }

                    @Override
                    public void onException(Throwable exception) {
                        // your code
                        MyLogUtil.e(TAG, "网易云信IM登录失败"+exception.getMessage());
                    }
                };

        //执行手动登录
        NIMClient.getService(AuthService.class).login(info).setCallback(callback);
    }

RavenGluttonous avatar Mar 14 '24 11:03 RavenGluttonous