使用okhttp3 (3.10.0) main方法访问网络时,出现 java.lang.NoSuchFieldError:Companion 这个问题
我的解决方案:
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.10.0</version>
</dependency>
<dependency>
<groupId>com.squareup.okio</groupId>
<artifactId>okio</artifactId>
<version>1.13.0</version>
</dependency>
项目中导了以上两个包,将okio包注释掉解决了问题。
这是治标,后将此包重新导入,测试,又不出现异常。具体的原因不清楚因为什么,若有知情人,请评论。
这里main()方法名称必须是这样写法,严格区分大小写。应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是。main()被调用的时候无需创建当前类的实例即可执行。方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是。类型的,方法必须接收一个字符串数组的参数等等。main()没有返回类型。(4)参数必须是String类型的数组。(5)方法名必须是main()(1)必须是public。(2)必须是static。(3)返回类型为void。主函数就是主方法,即。
com
.squareup.okio包版本不兼容
okhttp3
版本。1、和冲突的包换个位置,用高版本的okio包即可。2、或者添加依赖冲突的sdk的时候排除指定包即可。引发这个问题的原因可能和其他SDK包引用冲突。
在观察报错代码发现,第一个
okhttp3
这个文件,就去文件下找,发现。发现问题已经
解决
,并查看七牛云,发现已经上传上去,问题已经
解决
。添加的意义,有知道的大佬知道可以评论探讨一下。重新刷新,清理并编译,重新运行test文件。版本有点低,于是在pom中添加。
A friend of mine wanted to start to learn
java
, and I wanted to help him, so we created a simple Hello World example.
public class Hello {
public static void main(String argv[]) {
system.out.pr...
因为用到短信验证码,所以导入了httpclient-xx.jar 和httpcore-xx.jar包。ps:本来项目里已经有相应版本的jar包,因为jar包没有对应的class文件,所以cho重新导入其他版本的jar包。
2.报错原因
因为出现同名jar包冲突而引起的报错。ps:tomcat下同名不同版本的jar包,默认加载版本低的。
3.
解决
方法
删除发生冲突的jar包即可。...
问题浮现(结论党请跳过这一节直接查看‘总结’):
今天项目遇到这个问题,搜集网上各路大神的
解决
方式,都是第三方jar包使用高版本之后便
解决
了问题,也有少数人说是因为同时出现高版本和低版本jar包出现的问题,比如:,又比如:。
那么问题来了,我们使用的类名定义都是自定义的类,包路径也是公司名+部门名称+类名,比如:
com
.
com
pa
nyname.
pa
rtname.Business
Error
。这还
Exception in thread "main"
java
.
lan
g.NoSuch
Field
Error
: INSTANCE
at org.a
pa
che.http.conn.ssl.SSLConnectionSocketFactory.(SSLConnectionSocketFactory.
java
:144)
at
com
.aliyun.oss.
com
mon.
com
m.DefaultServ
okhttp3
.2与okip1.6,使用
okhttp3
.2请求必须要okio一起使用。出现
Exception in thread "main"
java
.
lan
g.NoClassDefFound
Error
: kotlin/jvm/internal/Intrinsics
at okio.Okio.source(Okio.kt)
at
okhttp3
.internal.io.RealConnection.connectSocket(RealConnection.
java
:144)
at
okhttp3
.internal.io.RealConnection.connect(RealConnection.
java
:111)
at
okhttp3
.internal.http.StreamAllocation.findConnection(StreamAllocation.
java
:188)
at
okhttp3
.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.
java
:127)
可以更换为此版本
解决
java
.
lan
g.NoSuch
Field
Error
: STRING at org.jbpm.identity.hibernate.PermissionUserType.
不用jbpm的jbpm-identity.jar
用这个就好