Android 如何实现exclude aar包中的某个jar包
场景一
要移除的jar包不在aar包中的classes.jar中
直接把aar包里的Jar打包的时候给去掉,就像下面这这样。注意,要使用exclude module这种方式,直接使用exclude group方式没有效果。exclude group的方法适用于exclude JAR包中的文件。
implementation(name: '×××××××aar包', ext: 'aar') { exclude module: 'gson' }
场景二
要移除的jar包在aar包中的classes.jar中
这个时候,使用exclude方法已经不能生效了。你可以使用下面的通用方法
解压aar文件到tmpDir目录下
unzip ×××.aar -d tmpDir
找到classes.jar包,用压缩工具打开,删除目标文件
将tmpDir重新打包成一个新的aar
jar cvf ×××NewLib.aar -C tmpDir/ .
**补充:**我在Ubuntu下直接使用压缩工具打开aar包,然后删除其中的重复的文件,这个方法也是可行的。
补充知识:Android导入多个Module时包冲突解决办法
本文章是基于AndroidStudio的经验总结 希望可以帮到您
1.如果某项目中导入了v4包(环信集成)
自己的项目AS中会自动导入V7包,V7包中就包含V4从而会导致V4jar包冲突
错误提示:
Error:Execution failed for task ':transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/annotation/ColorRes.class
解决办法:
compile ('com.android.support:appcompat-v7:23.3.0'){ exclude module: 'support-v4' }
compile fileTree(include: ['*.jar'], dir: 'libs')
这句话会导入lib文件夹中所有jar包
如果通过上面方法还没有解决问题说明lib中还是有V4包引用冲突 最好的办法就是注释掉 然后需要用到哪个jar 再导入哪个
以上这篇Android 如何实现exclude aar包中的某个jar包就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Android第三方HTTP网络支持包OkHttp的基础使用教程
在GitHub上开源的安卓HTTP编程包OkHttp正在积累着越来越高的人气,这里我们就来看一下这款Android第三方HTTP网络支持包OkHttp的基础使用教程:2016-07-07很赞的引导界面效果Android控件ImageSwitcher实现
这篇文章主要为大家详细介绍了Android控件ImageSwitcher如何实现很赞的引导界面的具体代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-05-05Android Studio开发中Gradle各种常见报错问题解决方案
这篇文章主要为大家介绍了Android Studio开发中Gradle各种常见报错问题解决方案,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-12-12Android使用缓存机制实现文件下载及异步请求图片加三级缓存
这篇文章主要介绍了Android使用缓存机制实现文件下载及异步请求图片加三级缓存的相关资料,需要的朋友可以参考下2016-02-02Android Studio 如何删除/新建一个module(图文教程详解)
这篇文章主要介绍了Android Studio 如何删除/新建一个module,此方法也会将该module从你的硬盘中删除,如果直接右键会发现没有delete选项,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧2020-03-03
最新评论