Gradle 3.x 主app和moudle都依赖分享jar包,问题可以转成主app依赖module中的jar包

问题:app和moude(zaqutils)都需要用到ShareSDK,两者都导入相同jar包后,编译时会报异常:包重复了

Gradle 3.x 主app和moudle都依赖分享jar包,问题可以转成主app依赖module中的jar包_第1张图片

解决方法:

个人习惯:创建一个moudle,里面放工具类,方便其他moudle调用和以后直接使用。命名为zaqutils,

1.app删除和zaqutils相同的jar包

2.修改zaqutils的build.gradle下配置

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

改成

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

注意:此时可能会报下图的错误

需要clean project或Rebuild Project就可解决了

 

原因:在gradle 3.x之后compile已经过时了,默认使用implementation,。

而implementation只作用于当前module(zaqutils),导致app依赖moudle(zaqutils)的jar包失败,把implementation改成api即可。

其实过时的compile与api是等同的,两者在功能上没有区别,只是gradle 3.x的优先级是先使用implementation。

你可能感兴趣的:(moudle,jar冲突,android)