【问题标题】:Eclipse Okhttp Error - java.lang.NoSuchFieldError: CompanionEclipse Okhttp 错误 - java.lang.NoSuchFieldError: Companion
【发布时间】:2021-10-09 06:03:56
【问题描述】:

我尝试使用 Okhttp 和 Scarlet 库,但是当我运行项目时会抛出此异常。 我该如何解决?我搜索了一下,发现 https 的版本在我添加到我的 maven 的不同库中不一样。在我的 maven 依赖项中,我看到了 okhttp-4.9.1.jar,但我不知道如何更改版本那个。 请帮帮我...

Exception in thread "main" java.lang.NoSuchFieldError: Companion
    at okhttp3.internal.Util.<clinit>(Util.kt:71)
    at okhttp3.OkHttpClient.<clinit>(OkHttpClient.kt:1073)
    at crypto.Main.main(Main.java:16)

我的 pom.xml 文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.cripto</groupId>
  <artifactId>crypto</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <dependencies>
   <dependency>
    <groupId>com.tinder.scarlet</groupId>
    <artifactId>websocket-okhttp</artifactId>
    <version>0.1.12</version>
   </dependency>
  
   <dependency>
    <groupId>com.tinder.scarlet</groupId>
    <artifactId>scarlet</artifactId>
    <version>0.1.12</version>
   </dependency>
   <dependency>
    <groupId>com.tinder.scarlet</groupId>
    <artifactId>message-adapter-gson</artifactId>
    <version>0.1.12</version>
   </dependency>
   
  </dependencies>
</project>

    public static String Url = "wss://stream.binance.com:9443" ;
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        OkHttpClient client = new OkHttpClient() ; 
        System.out.println(client) ;
        
        
        Scarlet scarlet = new Scarlet.Builder()
                .webSocketFactory(OkHttpClientUtils.newWebSocketFactory(client,Url))
                .addMessageAdapterFactory(new GsonMessageAdapter.Factory())
                //.addStreamAdapterFactory(new RxJava2StreamAdapterFactory())
                .build() ;
        
    }

【问题讨论】:

  • 看起来像不兼容的 jar 的
  • 将堆栈跟踪添加为文本而不是图像
  • 我该如何解决这个问题? @詹斯

标签: java eclipse okhttp


【解决方案1】:

要查看 okhttp 依赖项的来源,请运行以下命令,这将以树格式显示依赖项

mvn dependency:tree

一旦确定了依赖项的填充位置,就可以从那里排除(How to exclude dependency in a Maven plugin?) okhttp,然后添加所需的版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 2011-05-12
    • 2019-03-14
    • 2021-07-08
    • 2012-01-20
    • 2023-03-14
    • 2017-05-19
    相关资源
    最近更新 更多