在研究Android多進程編程的時候,照書敲了一個AIDL的例子。其中,用Android Studio自動生成了AIDL文件,會放進aidl文件夾,其中使用到了一個自定義數據類型,於是在aidl文件夾下會有3個文件,如下圖所示。
IBookManager中定義服務器提供的接口,其中用到了自定義數據類型Book,除了要用java實現Book類(必須implement parcelable)外,還要添加同名的Book.aidl文件,里面有兩句代碼。
package *.aidl;
parcelable Book;
一切就緒,開始編譯運行。
會報錯,客戶端import這個book類的時候,說找不到數據類型。
這是因為Gradle腳本中默認的java src文件夾,是不包括aidl的。所以,把aidl文件夾放入到java src中就行了。
在Gradle編譯腳本中加入
sourceSets{
main{
java.srcDirs = ['src/main/java','src/main/aidl']
}
}
再運行,完美。