我想在自己的流程中创建服务,以便与不同的应用程序进行通信。
我正在关注本指南http://www.donnfelker.com/rxjava-with-aidl-services/,但我遇到了.aidl文件的问题。
这是我的援助界面:
// MyAidlInteface.aidl
package my.package;
import rx.Observable;
interface MyAidlInterface {
Observable<Integer> getPid();
}
Android Studio给出了以下错误,我不知道该怎么做:
couldn't find import for class rx.Observable
答案 0 :(得分:3)
这里有两个问题:
rx.Observable
的AIDL声明。这是该的来源
AndroidStudio错误。 AIDL不是Java。只是因为
Java编译器可以看到rx.Observable
并不意味着它
对AIDL编译器可见。为了你自己的理智,它会产生一个很多
将所有AIDL放入单独的顶级源中的意义
夹。如果它没有与你的Java混淆,那么这样的错误
更容易发现。rx.Observable
的AIDL可见声明必须说明
类似的东西:package rx; parcelable Observer;
显然,这不会奏效。 rx.Observer
不是Parcelable。为了完成您要执行的操作,您必须创建一个带有AIDL定义的Parcelable对象,该对象是Observer
的代理。