Android Studio 中 跨模块依赖第三方库

本文讨论了在Android开发中如何处理多个模块依赖同一库的问题,介绍了implementation和api在Gradle依赖管理中的区别,以及如何实现库的复用以减少重复依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在日常对接sdk 或者Android开发中我们通常会用到 一些第三库 ,包,或这api,一部分是直接依赖远程仓库中的 ,还有一部分就是我们放在本地 模块下的libs目录下的,当我们多个moudle都依赖同一个库时,要怎么办呢?

这是我昨天练习的时候遇到的一个问题,我的Android项目是从unity中导出的 ,unityLibrary模块下的libs目录中有unity PlayerEngine的sdk ,也就是指的我们常见的classes.jar包,com.unity3d.player.UnityPlayerActivity 中就引用了这个jar包中的API。

当我新建了一个Module,用来给Unity发消息时,我发现        UnityPlayer.UnitySendMessage

这个API,也要用到 classes.jar的库,当然直接copy一份放在当前模块的libs目录下可以解决这个问题,但是我觉得一定可以跨模块依赖到unityLibrary下的 库。

我们平时最常见的实现依赖的就是:        implementation        ,implementation指令依赖是不会传递的,也就是说当前引用的第三方库仅限于本module内使用,其他module需要重新添加依赖才能用。

在查阅文档之后我发现还有另外一种 添加依赖的方式 就是吧        implementation    改为  api

    

gradle 中依赖implementation、api的区别:

其实api跟以前的compile没什么区别,将compile全部改成api是不会错的;

而implementation指令依赖是不会传递的,也就是说当前引用的第三方库仅限于本module内使用,其他module需要重新添加依赖才能用,下面用两个图说明:


以上就是两个api的区别,其实第三方库的复用,也可以直接把其他要用到这个库的模块,放在库所在的模块下面,这样的话  implementation  也可以实现,我们项目中就是用的这种方式。如图:

今天的分享结束,感谢来访!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值