当前位置:首页 » 云服务器 » 服务器jar包冲突怎么修改

服务器jar包冲突怎么修改

发布时间: 2023-04-16 01:25:23

① Android引入多个jar包,冲突问题解决方案

Android引入多个jar包,冲突问题解决方案(引入jar包,即本地文件) 以引用加载第三方框架中也有okhttp3  okio冲突讲解

(PS:如果不知道是那个jar冲突可以用指令gradlew app:dependencies查看)

1.找到项目中的libs->对应冲突的第三方包.jar。

3.用解压工具打开(不是解压乱尘,是打开。比如windows下可用360解压打开)。

4.删掉重复引用的包(okhttp3 + okio)。

5.重新打开虚唤项目,等待编译

6.可能出现innerClass mission警告,可以忽略掉,或者clean build。

7.如果还报错的话那么在app build.gradle加入哗誉禅:

packagingOptions {

          exclude 'META-INF/proguard/okhttp3.pro'

}

温馨提示:

      如果你的项目是因为刚刚添加了某个网络加载依赖导致的,那么你就查看下这个库下的哪一个依赖冲突了,在添加这个依赖的时候把它给过滤掉。具体写法如下。

implementation ('com.***.***:XXX:1.2.0'){ // 所加的第三方框架

        exclude mole: 'okhttp:3.10.0'

}

//或者要把组名一起添上去

implementation ('com.***.***:XXX:1.2.0'){ // 所加的第三方框架

        exclude group: 'com.squareup.okhttp3'

}

② jar包冲突解决方法

今天圆启启动工戚坦程时候报高腔桐了一个slf4j相关的jar包冲突的问题,java.lang.NoSuchMethodError(找不到具体方法),在idea中发现slf4j-api有两个不同的版本,解决办法如下

在idea右侧maven窗口中选中模块名称,右击选择jar包依赖树

按ctr+f输入冲突的jar包就可以找到它的继承关系,找到根坐标,然后在pom.xml中找到对应的坐标exclusion就ok啦

jar包冲突时候也有可能如下报错
1、java.lang.ClassNotFoundException(找不到类)
2、java.lang.NoSuchMethodError(找不到具体方法)
3、java.lang.NoSuchFieldError(字段错误)
4、java.lang.LinkageError(类错误 这个我没怎么见过)

③ jar包冲突的解决方法

一般就是在报错里找,如下,是我的报错信息,如下所示,这里比较明显的是org.apache.logging.slf4j.Log4jLoggerFactory这个类,报错的意思是说,实际构建的是用的就是上面的那个类,用了之后就开始报错了。
所以问题就很明确了,肯定是这个类不该用,肯定是不同的jar包中,出现了相同的类名导致的。

如果你使用idea开发的话,可闭液以双击shift,输入用org.apache.logging.slf4j.Log4jLoggerFactory类,然后点击如图的小按钮,找到对应的jar包,就找到了它的group,name,version等信息。

假设你用的是gredle,你可以跑一下dependencies,就可以拿到它们之间的全部的依赖,如果你用的maven的话,同样的道理,只需要在idea中点击,maven就可以了,

可以把2.2中跑出来轿局物得到的数据,粘贴在nodepa++中,然后搜索2.1中,对应的group,或是name都可以,通过这一步,就可腊郑以定位到是哪个jar包引进冲突的包

gradle中的做法是如图:

④ 解决项目中jar包冲突的终极方案

项目中经常会碰到jar包冲突,而很多情况下冲突的包是由于其他包依赖引入的,这个时候我们无法直接分辨冲突包是哪个依赖导致的,现在教你如何快速定位冲突包由哪个依赖引入的。

1.先配置gralde环境变量

具体配置方式参考: https://blog.csdn.net/u010042669/article/details/80914656

2.利用gradle命令找到项目中每个引用的依赖包,比如 你项目中使用com.android.support:cardview-v7:26.0.2中,而这个依赖会引入 com.android.support:support-annotations:26.0.2

命令:gradle host:dependencies

先进入要查询的项目根目录,host是application类型敬段扰 mole,通过这行命令可以遍历这个mole中每个依赖的所有间接引用

结果如下:

通过这种方式就可以轻松定位引起冲突的依赖

3.找到冲突的亮旦包后,使用exclude group方式剔除

4.重新build后,再使用gradle host:dependencies查看依赖,已经没了

5.最后,燃雹引来了胜利,可以开始庆祝了!!!

⑤ java jar包冲突怎么解决

由于,lib目录中的 struts.jar 和 struts-core-1.3.8.jar 存在冲突
导致部分服务器上应用启动报错,或访问后台JSP页面时报TILES标签错误,
经排查,其实struts.jar中的class文件在
struts-core-1.3.8.jar
struts-taglib-1.3.8.jar
struts-tiles-1.3.8.jar
中均已存在,且宏友版本要高于struts.jar中的class
struts.jar为version1.0
而巧瞎struts-core-1.3.8.jar,truts-taglib-1.3.8.jar,struts-tiles-1.3.8.jar为version1.2
在struts1.2中引用tiles tld的写法发生变蔽宽槐化

故解决办法如下:
1.去掉原strtus.jar
2.去掉struts-tiles.tld
3.将所有JSP页面中的
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%>
改为
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>

热点内容
app什么情况下找不到服务器 发布:2025-05-12 15:46:25 浏览:714
php跳过if 发布:2025-05-12 15:34:29 浏览:467
不定时算法 发布:2025-05-12 15:30:16 浏览:131
c语言延时1ms程序 发布:2025-05-12 15:01:30 浏览:165
动物园灵长类动物配置什么植物 发布:2025-05-12 14:49:59 浏览:734
wifi密码设置什么好 发布:2025-05-12 14:49:17 浏览:148
三位数乘两位数速算法 发布:2025-05-12 13:05:48 浏览:397
暴风影音缓存在哪里 发布:2025-05-12 12:42:03 浏览:541
access数据库exe 发布:2025-05-12 12:39:04 浏览:628
五开的配置是什么 发布:2025-05-12 12:36:37 浏览:365