Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在.aidl文件中导入第三方类_Android_Rx Java_Aidl - Fatal编程技术网

Android 如何在.aidl文件中导入第三方类

Android 如何在.aidl文件中导入第三方类,android,rx-java,aidl,Android,Rx Java,Aidl,我想在自己的流程中创建一个服务,以便与不同的应用程序通信 我遵循此指南,但对.aidl文件有问题 这是我的aidl界面: // MyAidlInteface.aidl package my.package; import rx.Observable; interface MyAidlInterface { Observable<Integer> getPid(); } //MyAidlInteface.aidl 包我的包; 进口接收。可观察; 接口MyAidlInter

我想在自己的流程中创建一个服务,以便与不同的应用程序通信

我遵循此指南,但对.aidl文件有问题

这是我的aidl界面:

// MyAidlInteface.aidl
package my.package;

import rx.Observable;

interface MyAidlInterface {
    Observable<Integer> getPid();
}
//MyAidlInteface.aidl
包我的包;
进口接收。可观察;
接口MyAidlInterface{
可观测的getPid();
}
Android Studio给了我以下错误,我不知道该怎么办:


找不到rx类的导入。可观察

这里有两个问题:

  • 为了使这一宣言发挥作用,必须有一个
    rx.可观察的AIDL声明
    。这就是问题的根源 AndroidStudio错误。AIDL不是Java。只是因为
    rx.Observable
    对Java编译器可见并不意味着它是可见的 对AIDL编译器可见。对于你自己的理智来说,这很重要 将所有AIDL放在一个单独的顶级源中是有意义的 文件夹。如果它没有与Java混淆,则会出现如下错误 更容易被发现
  • 第二个问题更难纠正:那就是
    rx.Observable
    的AIDL可见声明必须说明 比如:

  • 显然,这是行不通的<代码>接收。观察员不可包裹。为了完成您试图执行的操作,您必须创建一个具有AIDL定义的可包裹对象,即
    观察者的代理

    ,请解释一下如何创建观察者的可包裹对象(代理)?我不知道如何实现这一点,比如:
    package rx;
    
    parcelable Observer;