Android ADIL两端能连接成功但无法调用对应方法,且packagemanagerServices中报空指针异常

            最近在接手公司一同事的一个ADIL项目问题,先大概描述此ADIL项目,项目功能:将系统中原有的功能提取出来加入一个控制功能做接口供客户的APP直接调用并控制系统功能,如:禁用/启用导航中的HOME,BACK .RECENT键的功能,并且控制此三个虚拟按键隐藏与显示,

            因客户是在客户自己的APP中调用此类接口,这涉及到进程之间的通信,项目采用的ADIL模式,在他们之前的开发过程中可能因各个客户的需求不同,因此项目的功能接口做了对应的增减,这两天因要实现禁用/启用系统截图功能控制接口,刚好同事之前忆实现了功能,

      就直接从他们的项目把方法复制到本项目中,在ADIL两端的AIDL文件加入了此方法,在服务端实现了此方法的功能,在自己客户端(现称:测试APP)中也调用了此方法,但运行应用调用功能直接报packagemanagerServices的clearExternalStorageDataSync方法的packagename参数空指针异常,造成System_server 进程重启(系统重启),这问题好解决,就在此方法的最前面判断该参数是否为空,为空直接返回不再往下执行,再运行应用,空指针异常问题不报了,但在测试APP中调用该方法,服务端该方法完全没任何响应,也没报任何异常,显然就没调用到该方法,一遍遍仔细检查两端是否声明该方法,是否实现且调用该方法,都没任何错误,然后你知道的,各种百度,各种搜索 就这样纠结我一天半的问题,实现找不出原因,

      没办法只能问同事了,这项目是他们一手建立的,说不定他们之前就有遇到过类似问题呢,一问才知项目里xxxx.aidl在编译后生成对应的java文件中的每一个方法都有一个ID 值,如果服务端aidl文件生成对应的java文件中A方法与测试端的adil文件生成对应java文件中A方法的ID不一致 有可能会造调用不到,如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值