nim-uikit-android
nim-uikit-android copied to clipboard
8.3.1版本 :手动登录时,没有执行任何回调。
云信版本: 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);
}