2016-05-10 80 views
0

我創建了一個名爲IHelloService的AIDL服務,我試圖從libobore模塊下的IOBridge調用它。AIDL服務和Android開源

目前我的代碼看起來像這樣

// import 
import android.os.IHelloService; 
import android.os.ServiceManager; 

.... 

IHelloService helloService = IHelloService.Stub.asInterface(ServiceManager.getService("hello")); 
int val = helloService.getVal(); 

我做一個標準的構建時遇到錯誤。 這些錯誤包括:package android.os does not existcannot find symbol ServiceManagerIHelloService

我已經宣佈在HelloService的AIDL文件package android.os,所以我不認爲這是個問題。

任何幫助,將不勝感激。

回答

1

桑,

您的問題實際上是我一直在努力的一個問題。你需要做的是構建一個新的SDK來與那個特定的服務一起使用,以便Android Studio(我假設你正在使用的是)可以將它識別爲在你的ROM版本中可用。

這裏是你應該做的:(在https://android.googlesource.com/platform/sdk/+/master/docs/howto_build_SDK.txt找到)

  1. 轉到您的Android構建區域和運行。 build/envsetup.sh
  2. 在構建區域運行「make update-api」命令。這將更新您對api所做更改或添加的文件。
  3. 運行「lunch sdk-eng」爲sdk設置構建。
  4. 要製作SDK,請運行「make sdk」。這可能需要一些時間(千萬 - 5 2小時),但將與線「包SDK:出/主機/達爾文-86/SDK/Android的sdk_eng..zip」結束

現在,SDK由,您需要將Android Studio指向新的SDK。要做到這一點:

  1. 右擊你的應用程序,並選擇「打開模塊設置」。
  2. 從左側的菜單中選擇「SDK」。
  3. 選擇您的新SDK路徑。

可能還有其他方法可以做到這一點,但那是我目前正在使用的過程。

+0

感謝您的回覆。實際上,我只是試圖從Android源代碼(libcore模塊)中調用服務,而不是從應用程序調用。不幸的是,運行update-api會輸出我在第一個問題中提到的同樣的錯誤。 – Sang