当前位置: 首页 > 编程笔记 >

完美解决android 项目jar包冲突的问题

隗嘉歆
2023-03-14
本文向大家介绍完美解决android 项目jar包冲突的问题,包括了完美解决android 项目jar包冲突的问题的使用技巧和注意事项,需要的朋友参考一下

大家在做开发中竟然需要用到一些三方库 或者 需要集成三方的SDK开发包,尤其是项目特别庞大的时候,引用的三方的东西特别多,那么肯定会碰到一些jar包冲突的情况。

常见的情况有以下几种

1.项目自己引用jar包重复

2.项目中jar包和三方SDK

3.三方sdk之间都含有相同类

4.打包时候出现编译错误,出现冲突

1.项目自己引用jar包重复

com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice

类似这种 v4包重复 ,直接删掉其中一个包就可以了。

2.项目中jar包和三方SDK

这其实有两种情况

1)  将一些三方的框架源码引用到项目中了比如 GSON ,Vollery这些,我们将里面的一些文件重写了,引用的是源码,这个和我们引用的三方库里面的冲突了 。

这种情况,我们可以将三方库设置为私有 provided,如果还是有冲突我们可以将

2) 直接导入的jar包 或者 gradle中配置的依赖 和项目中原有的一些jar包出现冲突。

3.三方sdk之间都含有相同类

比如你集成了友盟的sdk,又集成了支付的sdk,还集成了一些其他的sdk。这些sdk之间会有一些冲突。

4.打包时候出现编译错误,出现冲突

这种情况是正常手机调试运行没有问题,但是一打正式包就报错,冲突。

说了这么多,这些碰到这种项目中有冲突,或者有重复文件的情况我们如何解决呢?

一般常用的解决办法

1.双击shift 可以调出搜索 这个搜索是全局含jar搜索,可以快速定位到你搜索的东西存在哪个包下。

2.找到后 按上面讲的,解决也有几种情况

1)如果是两个相同的jar ,直接删掉一个

2)如果不同的jar有相同的引用 用exclude解决,大概意思就是去掉 你不需要的类

 3)打包出现的错误冲突等,我们可以找到 ,或者删除,或者修改,引入的方式可以修改为provided

这种方式只提供编译支持,但是不会写入apk。使用provide可以避免支持包版本冲突和重复打包导致安装包体积徒增。

以上这篇完美解决android 项目jar包冲突的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 假设我们有一个包含一个类的软件包(以及其他类)。 然后,我们还有另一个包含一个类的包(显然具有不同的行为)。 现在假设我们需要com.example1中的每个类和com.example2中的Hello类 在这种情况下,哪个被叫? 还是这会产生编译错误? 出于好奇,这只是一个理论问题。 由于创建软件包是为了避免命名冲突,所以当两个软件包包含两个具有相同名称的类时会发生什么? 问题答案:

  • 本文向大家介绍完美解决EditText和ScrollView的滚动冲突(上),包括了完美解决EditText和ScrollView的滚动冲突(上)的使用技巧和注意事项,需要的朋友参考一下 在网上搜了一下EditText和ScrollView的滚动冲突,发现几乎所有的解决方案都是触摸EditText的时候就将事件交由EditText处理,否则才将事件交由ScrollView处理。这样确实初步解决了两

  • 本文向大家介绍完美解决EditText和ScrollView的滚动冲突(下),包括了完美解决EditText和ScrollView的滚动冲突(下)的使用技巧和注意事项,需要的朋友参考一下 上篇文章完美解决EditText和ScrollView的滚动冲突(上)中提到咱们自己写了一个判断EditText是否可以在垂直方向上滚动的方法,那么这个方法是如何得来的呢? 其实Android API里是有一个判

  • 问题内容: //这是我的代码,我正在代理工作… //以下错误出现在我的控制台上 我正在使用以下罐子 问题答案: 该班已搬迁到另一个包中的HttpClient 4.4。 从4.4开始 将您的httpcore版本升级到至少4.4即可解决该问题。

  • 如您所见,存在版本冲突,但gradle似乎认识到了冲突,并应用了默认的“最新版本”策略,这正是我想要的。 但是,当尝试运行(手动或通过Android Studio)时,我会得到 对类似问题的一些回答建议ing不需要的jar,但我遇到了许多类似的冲突,而且有点失控。

  • Windows 用tutorial进行的操作 若要进行pull操作,请右击tutorial目录,并选择‘拉取’。 用tutorial进行的操作 在以下画面点击‘确定’。 用tutorial进行的操作 我们看到画面上的警告信息表示自动合并失败。请点击‘关闭’以退出窗口。 用tutorial进行的操作 若您确认变更,请点击‘Yes’。 用tutorial进行的操作 TortoiseGit告诉我们:因"