出现这种错误有三种可能性:
1、包错误
2、自定义类型未使用 in,out 参数
3、创建了同名不同参数的方法
基本上都是这三种问题引发的上述编译异常,耐心细致排查,基本可以解决问题。
正确的文件放置位置如下:
Java 文件放在 下面的 aidl 包中,aidl 文件放在上面的 aidl
package com.shanks.multiprocessdemo.aidl;
parcelable Dog ;
package com.shanks.multiprocessdemo.aidl;
// 注意这里需要正确的导包,虽然 Dog 和 IMyAidlInterface 在同一个包下,但是依然需要导包
import com.shanks.multiprocessdemo.aidl.Dog;
interface IMyAidlInterface {
void sendDog(in Dog dog);
}