kotlin+studio3.2+aidl之Process 'command '.../aidl'' finished with non-zero exit value 1

kotlin aidl

坑前

不好意思,我是用kotlin写的,然后aidl文件的话,在studio里还是Java的语法。所以写完这博客之后我才发现这篇博客和kotlin没什么关系。。。

我之前提到过,我最近在做iOS。所以现在在回顾Android方面的知识,因为不回顾都忘了,所以现在一有时间,就看Android。

今天看到aidl,寻思着之前项目里一直没用过aidl。现在会kotlin,正好用kotlin写一个demo。
于是乎就又遇到了坑。

最开始学aidl是eclipse,用studio的时候,接触的项目一直没用过aidl。今天写一个demo居然发现了问题。

坑中

按照之前做过的,自定义类型的时候,发现报了一个错误。
Process ‘command ‘/Users/xuwenqi/Downloads/sdk/build-tools/28.0.3/aidl’’ finished with non-zero exit value 1
如下:kotlin+studio3.2+aidl之Process 'command '.../aidl'' finished with non-zero exit value 1_第1张图片studio升级之后,变异的错误页面也不习惯。就这一句话,也没有描述,我找了半天,做过aidl的都知道,可能以为是导包问题,以为是parcelable写错了,以为是用kotlin写的bean类的原因。等等,找了半天都不对。后来我在这个界面来回翻,才翻到根本原因是什么:kotlin+studio3.2+aidl之Process 'command '.../aidl'' finished with non-zero exit value 1_第2张图片哦,因为是编译错误,所以错误信息点击到最后编译出错的那一条就行了,发现是ioexception。呵呵呵呵,我知道什么原因了。我的aidl是这样的:
kotlin+studio3.2+aidl之Process 'command '.../aidl'' finished with non-zero exit value 1_第3张图片
这里应该定义成in或者inout或者out。我记得之前这里是默认实现就是in来着,我记错了吗?反正现在应该是得自己定义一个了。

关于这个in和out:
如果我们是从客户端到服务器传的数据,用:in。

如果数据是通过从服务器到客户端,使用:out。

如果参数是输入也是输出-客户端的值在服务可能会修改,使用:inout

简单明了,这里demo就是in,所以改成这样:
kotlin+studio3.2+aidl之Process 'command '.../aidl'' finished with non-zero exit value 1_第4张图片就可以了。

简单明了。

坑后

最近很烦。很烦。很烦。很烦。不想说话。

你可能感兴趣的:(趟坑)