2015-04-07 78 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(); 
    } 
} 

現在,它的工作原理,並且不:-)