当前位置: 首页 > 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?

http://www.xdnf.cn/news/486631.html

相关文章:

  • 电子电路仿真实验教学平台重磅上线!——深圳航天科技创新研究院倾力打造,助力高校教学数字化转型
  • Linux进程信号(一)之信号的入门
  • AI-Course-Presenter
  • Houdini POP入门学习01
  • 后端框架(1):Mybatis
  • “分布形态“
  • 浅谈“量子计算应用:从基础原理到行业破局”
  • ohttps开启群晖ssl证书自动更新
  • lesson03-简单回归案例(理论+代码)
  • 文章记单词 | 第87篇(六级)
  • FC7300 ADC MCAL配置引导
  • sqli-labs靶场23-28a关(过滤)
  • conda init执行了还是不好用
  • 2025年长三角+山东省赛+ 认证杯二阶段论文发布!
  • python是如何调用前后双下划线的函数的
  • mysql集群
  • [前端] wang 富文本 vue3
  • 【GaussDB迁移攻略】DRS支持CDC,解决大规模数据迁移挑战
  • 芯谷产业园:双流元宇宙开放数字贸易新坐标
  • C++:字符串操作函数
  • 刷leetcodehot100返航版--双指针5/16
  • 虚拟来电 4.3.0 |集虚拟来电与短信于一体,解锁VIP优雅脱身
  • 腾讯云代码助手CodeBuddy使用体验
  • 7.1Java多线程安全和同步
  • vue 指令
  • python版本管理工具-pyenv轻松切换多个Python版本
  • DATE_FORMAT可以接收date类型,也可以接收String类型!
  • this.$set的用法-响应式数据更新
  • oracle主备切换参考
  • 初学者如何用 Python 写第一个爬虫?