0

我对 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 变量,但我不知道我必须放什么。

有人有同样的问题或可以提供解决方案吗?

谢谢。

4

1 回答 1

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();
    }
}

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

于 2015-04-08T06:26:27.827 回答