0
我正在編寫一個服務使用AIDL遠程調用方法。我能夠成功連接到服務,並且還可以調用其上的方法。但是,如果我嘗試調用onServiceConnected()中的方法,則會收到空指針異常。代碼片段如下。android遠程服務在單獨的進程中運行,並從onserviceconnected()調用方法
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Log.v(TAG, "service connected");
serviceObj = <AIDL Interface>.Stub.asInterface(service)
if(serviceObj != null) {
serviceObj.getMyMethod(); // Throws Null Pointer Exception, why???
}
}
此外,在清單中,我已經定義的服務標籤以下屬性:
android:process=":remote"
但是,如果我調用serviceObj.getMyMethods()其他地方,例如在點擊一個GUI按鈕,我沒有得到這樣的錯誤,並且方法成功返回。另外,如果我刪除上面的「:remote」屬性,我不會在相同的代碼中得到這個錯誤。
我想這是與在不同進程中運行應用程序和服務相關的問題,但無法找出確切原因。有任何想法嗎?