mark自己的低级错误-利用AIDL的远程服务

自定义了数据类型用于存储计算结果,对两个long型数据进行加减乘除,四个结果保存在自定义的AllRes数据类型中。

先对自定义类型AllRes和远程服务Icompute用AIDL定义好,并写出对应的JAVA文件,AllRes.java和compute的service.java。

然后写出调用次service的java工程。

service先安装,因为没有对应的activity,所以可以在文件系统里查看,我的开始犯了错误,总是弹出readException的错误,是因为AllRes.java的写入顺序搞错了,这个要实现Parcelable的方法必须按顺序读写。发现这个问题后还是不对,然后一顿找,发现的第二个错误:

service包中的文件顺序改了,但远程调用它的程序copy了它的代码,我没有对应修改,导致还是旧的,所以要改动service中的AIDL或者自定义数据类型的java文件一定要把调用者的也相应改了。

本以为可以了,仍然不对,明明是加减乘除的顺序结果打印出来减法和乘法结果反了,将上面的又检查了一遍还是不对,最后才明白;

第三:一直重新编译调用者,但是修改service的程序后没有重新安装,这样即使修改了其中的接口文件和自定义数据类型也是没用的,最后先重新安装的service,又重新运行了远程调用的app才算大功告成,真是,不明白简单的道理和运行机制就瞎整很危险啊

写的有点乱,就当给自己提个醒了~~以后长点心吧!

继续加油

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值