在研究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‘]
}
}
再运行,完美。
时间: 2024-11-03 13:45:53