android 端获得token后 chatManager 连接不上服务端,debug显示mClient一直为null,什么问题哦

李想 2023-11-8 309

private Observer imStatusLiveDataObserver = status -> { if (status && !isInitialized) { init(); isInitialized = true; } }; 不会执行到init方法 MyApplication中也初始化成功并且获取到UserId 以及 Token 执行到了MianActivity中无法初始化 init();

   AppService.validateConfig(this);
    // 只在主进程初始化,否则会导致重复收到消息
    if (getCurProcessName(this).equals(BuildConfig.APPLICATION_ID)) {
        // 如果uikit是以aar的方式引入 ,那么需要在此对Config里面的属性进行配置,如:
        // Config.IM_SERVER_HOST = "im.example.com";

        WfcUIKit wfcUIKit = WfcUIKit.getWfcUIKit();
        wfcUIKit.init(this);
        wfcUIKit.setAppServiceProvider(AppService.Instance());
        MessageViewHolderManager.getInstance().registerMessageViewHolder(LocationMessageContentViewHolder.class, R.layout.conversation_item_location_send, R.layout.conversation_item_location_send);
        setupWFCDirs();

        SharedPreferences sp = getSharedPreferences(Config.SP_CONFIG_FILE_NAME, Context.MODE_PRIVATE);
        String id = sp.getString("id", null);
        String token = sp.getString("token", null);
        if (!TextUtils.isEmpty(id) && !TextUtils.isEmpty(token)) {
            //需要注意token跟clientId是强依赖的,一定要调用getClientId获取到clientId,然后用这个clientId获取token,这样connect才能成功,如果随便使用一个clientId获取到的token将无法链接成功。
            //另外不能多次connect,如果需要切换用户请先disconnect,然后3秒钟之后再connect(如果是用户手动登录可以不用等,因为用户操作很难3秒完成,如果程序自动切换请等3秒)
            ChatManagerHolder.gChatManager.connect(id, token);
        }
        Log.e("TAG", "onCreate: "+ChatManagerHolder.gChatManager.getClientId() );
    }
    初始化是没有问题的
最新回复 (5)
  • 李想 2023-11-8
    引用 2
    Bind service failure
  • 李想 2023-11-8
    引用 3
    ChatManager 中的 IRemoteClient mClient  mClient 为null
  • x86 2023-11-8
    引用 4
    看起来是启动`ClientService`失败,看下有无`xx:marsservice`进程?

    另外,请附上完整日志
  • 李想 2023-11-9
    引用 5

    这是日志

    上传的附件:
  • 李想 2023-11-9
    引用 6

    日志

返回