当前位置: 首页 > news >正文

多模块,依赖android.car.jar后,能调用接口但是没有回调的问题

文章目录

  • 前提条件
  • 尝试解决问题
    • 代码位置
    • 依赖位置(最后解决)
  • 总结


前提条件

环境是gradle 8.0,多个model相互依赖。

此处插入图片

我的项目是类似 base model 给 common model 依赖, common model给 app model 依赖,然后本地jar放在base model的libs文件夹下

此处插入图片

通过compileOnly依赖,确保项目编译通过。

此处插入图片

然后在base model写了个object工具类,包含get,set和callback方法。最后在app model调用;然后离谱的事情就出现了。编译正常,运行正常,get,set方法调用正常,联调的同事都看见他那边模块的日志打印了,但是最后我这边收不到callback回调,联调的同事帮忙加了日志并反复确认说他已经把回调返给我了,并且进程号都是我app的进程,别的接入的模块都没有此问题,反复对比了别的接此jar的同事的代码,发现无明显差异。

吐槽:明明get,set都可以callback不可以,真的坑爹,我直接傻掉


尝试解决问题

因为出问题的第一时间就对比了自己的实现方法和别人模块的问题,所以代码写法确定是没有错的,那么差异点就在线程和一些配置上面了,首先确定的就是环境的依赖,因为编译和get,set方法是没有问题,怀疑在线程上出了问题导致回调接受不到,让写接口的同事帮忙在返回的地方加了日志,明确了是有返回并且线程号是一致的。那么就确定了是项目环境导致的,一个是代码位置,一个是依赖位置。

代码位置

尝试将callback代码位置放到APP model,编译运行,还是无法收到回调。

依赖位置(最后解决)

尝试将每一个model都放置一个jar包,但并不改变依赖方式,还是通过compileOnly依赖。代码位置保持不变,编译运行,可以收到回调了!


总结

问题的根本原因在于依赖的jar包在模块间的传递性。通过在每个模块中都放置一份jar包,确保依赖的一致性,从而解决了callback回调无法接收的问题。这也算8.0的一个bug?

相关文章:

  • 关于Redisson分布式锁的用法
  • 计算机网络 : Socket编程
  • Java(基础) day01 初识Java
  • window 显示驱动开发-分页视频内存资源
  • 从 Vue3 回望 Vue2:生命周期的清晰化——从混乱钩子到明确时机
  • 分布式锁: Redis和ZooKeeper两种分布式锁对比
  • 操作系统之进程和线程听课笔记
  • IOP出版|第二届人工智能、光电子学与光学技术国际研讨会(AIOT2025)
  • 深入解析ZAB协议:ZooKeeper的分布式一致性核心
  • 济南超算研究所面试问题
  • Elasticsearch 索引副本数
  • Git基础使用方法与命令总结
  • Python线性回归:从理论到实践的完整指南
  • 【时空图神经网络 交通】相关模型2:STSGCN | 时空同步图卷积网络 | 空间相关性,时间相关性,空间-时间异质性
  • vue复杂数据类型多层嵌套的监听
  • DDS(数据分发服务) 和 P2P(点对点网络) 的详细对比
  • Qwen2.5-VL模型sft微调和使用vllm部署
  • yocto项目例子
  • 美创科技针对《银行保险机构数据安全管理办法》解读
  • 武汉火影数字全息剧秀制作:科技与艺术的梦幻联动
  • 全国林业院校校长论坛举行,聚焦林业教育的创新与突破
  • 从近200件文物文献里,回望光华大学建校百年
  • 上海一保租房社区亮相,首批546套房源可拎包入住
  • 马上评|训斥打骂女儿致死,无暴力应是“管教”底线
  • 马上评|清理“滥竽充数者”,为医者正名
  • 张汝伦:康德和种族主义