当进行AIDL跨进程通讯时,如果抛出 Binder invocation to an incorrect interface ,则主要是因为2种情况。
1、最普遍的,客户端 VS 服务端 的AIDL必须保证完全一样,包括包名,类名,接口名及其里面的代码。否则会抛出以上异常。
2、如果第一条符合,则检查下调用的服务是否正确,如果调用的服务不一致或者服务中返回给客户端的Binder不是客户端想要的,则也会抛出以上异常。比如:当返回的Binder同时实现了onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags)方法并在该方法内return false和AIDL接口方法,则调用AIDL接口的方法时会报上述错误。
网友评论