2015-04-07 33 views
0

下降呼叫我有一个在android系统Linphone中库中的问题。 当我有一个来电,如果我拿起,一切都好,但如果我挂断,应用程序崩溃。空指针异常而在Linphone中

我有一个LinphoneCore私有变量:

private LinphoneCore mLc; 

这是崩溃的功能。

private void declineCall() { 
    Log.e("CSR","Decline Call"); 
    mLc.terminateAllCalls(); 
} 

这里,输出:

04-07 10:48:40.599: E/CSR(4409): Decline Call 
04-07 10:48:40.609: E/AndroidRuntime(4409): FATAL EXCEPTION: main 
04-07 10:48:40.609: E/AndroidRuntime(4409): Process: com.test.myapp, PID: 4409 
04-07 10:48:40.609: E/AndroidRuntime(4409): java.lang.NullPointerException: Attempt to invoke interface method 'void org.linphone.core.LinphoneCore.terminateAllCalls()' on a null object reference 
04-07 10:48:40.609: E/AndroidRuntime(4409):  at com.test.myapp.IncomingCallActivity.declineCall(IncomingCallActivity.java:165) 
04-07 10:48:40.609: E/AndroidRuntime(4409):  at com.test.myapp.IncomingCallActivity.onClick(IncomingCallActivity.java:138) 

我假设LinphoneCore变量进行初始化,但我不知道我必须把。

有人有同样的问题,也可以用该解决方案帮助吗?

谢谢。

+0

了崩溃之前,你可以使用它,它应该被初始化。 –

+0

是的,但我不知道我必须为初始化做些什么 – MouTio

回答

0

我发现了两个可能的解决方案阅读Linphone中的代码,并尝试不同的选项。

解决方案1:

private void declineCall() { 
    mLc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); 
    if (mLc != null) { 
     mLc.terminateAllCalls(); 
    } 
} 

解决方案2:

private void declineCall() { 
    mLc = LinphoneManager.getLc(); 
    if (mLc != null) { 
     mLc.terminateAllCalls(); 
    } 
} 

现在,它的工作原理,并且不:-)