前言:
使用Androidstudio编译AIDL时,出现Process 'command 'D:\SDK\build-tools\27.0.3\aidl.exe'' finished with non-zero exit value 1的错误;
原因及解决办法
导致以上异常的原因有以下几种方式:
1,AIDL文件所在的包名和项目包名不一致(下图是正确的)
2, aidl文件中的包名信息和项目的包名(即 module下build.gradle中的applicationId "com.ang.aidltest")不一致,也会导致以上错误
3,如果aidl文件中导入Parcelable子类对象的包名不正确(下图也是正确的),也会导致以上异常;
aidl传递自定义的对象必须继承Parcelable,是可序列化的;
4,aidl文件名和接口名不一致
5,aidl文件接口中任何一个地方书写错误都会导致
6,编译完成,系统根据IBookManager.aidl生成的IBookManager.java类(Binder类),所在的目录如下图:
7,声明了自定义Parcelable对象(上例中Book继承了Parcelable) 的aidl文件名,必须和Parcelable对象名一致;如上例中的:Book.aidl和Book.class
8,自定义Parcelable对象(例子中的Book.java)包名(所在的路径)和其对应声明的Book.aidl文件中的包名是否一直,不一致也会出现异常;