我在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变量必须初始化,但我不知道我要放什么。
有人遇到同样的问题或可以帮助解决方案吗?
感谢。
答案 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();
}
}
现在它可以工作并且不再崩溃: - )