有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何解决此错误?“java.lang.NoSuchFieldError:org.apache.http.conn.ssl.SSLConnectionSocketFactory上的实例。<clinit>。”

我正在Android Studio中编写java代码

我请求http时遇到问题

这是密码

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;

import java.io.IOException;
import java.util.UUID;

public class GetAccounts {

    public static void main(String[] args) {
       String accessKey = System.getenv("UPBIT_OPEN_API_ACCESS_KEY");
       String secretKey = System.getenv("UPBIT_OPEN_API_SECRET_KEY");
       String serverUrl = System.getenv("UPBIT_OPEN_API_SERVER_URL");

        Algorithm algorithm = Algorithm.HMAC256(secretKey);
        String jwtToken = JWT.create()
                .withClaim("access_key", accessKey)
                .withClaim("nonce", UUID.randomUUID().toString())
                .sign(algorithm);

        String authenticationToken = "Bearer " + jwtToken;

        try {
            HttpClient client = HttpClientBuilder.create().build();
            HttpGet request = new HttpGet(serverUrl + "/v1/accounts");
            request.setHeader("Content-Type", "application/json");
            request.addHeader("Authorization", authenticationToken);

            HttpResponse response = client.execute(request);
            HttpEntity entity = response.getEntity();

            System.out.println(EntityUtils.toString(entity, "UTF-8"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    } 
}

这就是错误

Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
    at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:912)
    at com.project.autotrade.GetAccounts.main(GetAccounts.java:31)

最初,我将其添加到依赖项中。(最新版本)

implementation 'org.apache.httpcomponents:httpclient:4.5.13'

这在我的库中添加了httpclient 4.5.13httpcore 4.4.13

我搜索了很多来解决这个错误 我发现问题是两个

首先, httpclienthttpcore的版本不同

所以我尝试降级httpclient和httpcore,使其与4.4.1版本相同

但这是行不通的

第二, 目录中有一个旧版本。jar文件被放置, 所以那些旧版本的jar文件使它们相互冲突

所以我试着重置那个目录并重新编译代码。 但这也不起作用

我应该如何更改我的库httpclienthttpcore的设置

谢谢!


共 (0) 个答案