Gradle 3.x 主app依赖module中的jar包

之前通过android studio生成一个项目之后,在app的gradle中会自动帮你加上这样一句:

compile fileTree(dir: 'libs', include: ['*.jar'])

这是指明项目的jar文件所在的文件夹为libs文件夹。

后来对android studio做了一次升级。新建项目之后遇到了这样一个问题。项目除了app之外还有多个module。因为之前app是可以直接使用其依赖的module中的jar包的。结果现在代码调用不到了。如果在app中再放一个jar包又提示你jar包冲突。

经过查看发现,新生成项目的gradle中,原本上面的这句变成如下这句:

implementation fileTree(dir: 'libs', include: ['*.jar'])

经查看,是在gradle 3.x之后默认使用implementation,而compile已经过时了。也是由于这个原因导致app依赖module中的jar包失败。

解决方法:

gradle 3.x中提供了一个新的依赖命令api。因为implementation只会作用于当前module。因此就导致了app依赖module的jar失败的问题。将implementation替换成api即可依赖成功。

api fileTree(dir: 'libs', include: ['*.jar'])
顺便说一句,被废弃的compile与api是等同的,两者在功能上没有区别。只是gradle 3.x的优先级是先使用implementation。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值