2017-05-05 108 views
0

我试图使用sinch的我有误差修改我不知道为什么一个我似乎已设置得很好。Sinch客户端无法启动?

和它指向我到这部分代码,其

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(名称);”

这是我的错误

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) 

我不明白

回答

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

调用堆栈说:

getSinchServiceInterface()null

,并会建议阅读: https://stackoverflow.com/a/41477703/1979882

+0

请我仍然不明白的答案。一切工作,当我创建一个单独的java类。但我在我的java类中创建了另一个类,它扩展了基本活动,我试图访问它。或者我应该更新我的问题 – arinze

0

我面临这个问题了几个星期。我从头开始重写了我的SinchService,彻底删除了Sinch,尝试着重新开始,但都无济于事。事实证明,我只是简单地初始化我的电话。

我建议您将代码块:

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

我搬到我的我的的onResume方法的尽头,它似乎现在都正常工作。这不会持续启动客户端的原因是因为我们正在添加'if'语句以确保它尚未初始化。

如果您发现该问题仍然抛出,这对我来说是在一个点的情况下,尝试在推出的活动的最后调用它。它简单地归结为被称为前你BaseActivity有机会初始化mSinchServiceInterface