在Linphone中拒绝呼叫时出现NullPointer异常

时间:2015-04-07 09:59:22

标签: android linphone

我在Android中遇到了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变量必须初始化,但我不知道我要放什么。

有人遇到同样的问题或可以帮助解决方案吗?

感谢。

1 个答案:

答案 0 :(得分: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();
    }
}

现在它可以工作并且不再崩溃: - )