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包就是小编分享给大家的全部内容了,希望能给大家一个参考。
- Go实现短url项目
- 【Go 语言社区】GO语言多核并行化的问题
- mysql执行计划看是否最优
- 通过IP定位区域的SQL优化思路(r10笔记第10天)
- Java基础-day06-知识点回顾与练习
- 【Go 语言社区】Golang语言的多核并行化例子
- 一条SQL语句的执行计划变化探究(r10笔记第9天)
- 【Go 语言社区】Web 通信 之 长连接、长轮询(long polling)--转
- Dubbo入门-协议;注册中心
- Oracle 12c PDB浅析(二)(r8笔记第29天)
- 【Go 语言社区】在 Go 语言中,如何正确的使用并发
- Data Guard高级玩法:通过闪回恢复failover备库 (r10笔记第7天)
- ajax跨域问题-web开发必会
- 在线重定义的补充测试(r10笔记第26天)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释