Sinch客户不会开始?

时间:2017-05-05 11:30:44

标签: android sinch

我正在尝试使用sinch而我正在使用erros我不知道为什么我似乎已经设置好了。

它指的是代码的这一部分

public void that(final String name) {
    call.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            if ((getSinchServiceInterface() == null) || (!getSinchServiceInterface().isStarted())) {
                getSinchServiceInterface().startClient(name);
            }
        }
    });
}

“getSinchServiceInterface()。startClient(name);”

这是我的错误

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.obi.thinker.logins.call.SinchService$SinchServiceInterface.startClient(java.lang.String)' on a null object reference
                                                                                at com.obi.thinker.logins.tabs.Chatting$caller$1.onClick(Chatting.java:386)
                                                                                at android.view.View.performClick(View.java:5265)
                                                                                at android.view.View$PerformClick.run(View.java:21534)
                                                                                at android.os.Handler.handleCallback(Handler.java:815)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:104)
                                                                                at android.os.Looper.loop(Looper.java:207)
                                                                                at android.app.ActivityThread.main(ActivityThread.java:5683)
                                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

我不明白

2 个答案:

答案 0 :(得分:1)

if ((getSinchServiceInterface() != null && !getSinchServiceInterface().isStarted())) {
                getSinchServiceInterface().startClient(name);
            }
callstack说:

getSinchServiceInterface()null

并建议阅读此内容: https://stackoverflow.com/a/41477703/1979882

答案 1 :(得分:0)

我几周来一直面临着这个问题。我从头开始重写了我的SinchService,完全删除了Sinch并试图重新开始,但都无济于事。事实证明,我只是过早地初始化我的电话。

我建议您移动代码块:

if ((getSinchServiceInterface() != null || !getSinchServiceInterface().isStarted())) {
            getSinchServiceInterface().startClient(name);
        }

我把我移到了 onResume 方法的最后,现在看来一切正常。这不会持续启动客户端的原因是因为我们正在添加'if'语句以确保它尚未初始化。

如果您发现问题仍然存在,我一度就是这种情况,请尝试在活动启动结束时调用它。它简直归结为在您的BaseActivity有机会初始化 mSinchServiceInterface

之前被调用