gpt4 book ai didi

android - API 23 更新后 Android SDK 和 Apache HTTP 之间的冲突

转载 作者:行者123 更新时间:2023-11-30 01:22:24 25 4
gpt4 key购买 nike

在我的项目中,我使用了这些库:

compile 'org.apache.httpcomponents:httpclient:4.5.2'
compile 'org.apache.httpcomponents:httpcore:4.4.4'

一切正常,直到我为 API 23 更新了 Android 工具。然后当我尝试执行 HttpPost 时,出现以下异常:

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:966)
at org.apache.http.impl.client.HttpClients.createDefault(HttpClients.java:58)

这是它发生的库代码:

public class SSLConnectionSocketFactory implements LayeredConnectionSocketFactory {

public static final String TLS = "TLS";
public static final String SSL = "SSL";
public static final String SSLV2 = "SSLv2";

@Deprecated
public static final X509HostnameVerifier ALLOW_ALL_HOSTNAME_VERIFIER
= AllowAllHostnameVerifier.INSTANCE;

查看外部库时,我可以看到 android.jar 下的 AllowAllHostnameVerifier 类:

AllowAllHostnameVerifier under android.jar

当使用这个问题的答案中的代码时:java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INSTANCE from Mashape Unirest in Java application

我得到这个输出:

jar:file:/E:/Program%20Files/Eclipse%20Android%20SDK/adt-bundle-windows-x86_64-20140702/sdk/platforms/android-23/android.jar!/org/apache/http/conn/ssl/AllowAllHostnameVerifier.class

所以我可以看到构建是从 SDK 而不是 Apache 库中获取此类。

所以问题是,我如何修复我的类路径或其他必要的配置,以指示构建像以前一样从 Apache 使用这些类,而不是从 SDK?

提前致谢!

最佳答案

简而言之,只需编辑android.jar 文件,删除需要被Apache 库替换的类。

关于android - API 23 更新后 Android SDK 和 Apache HTTP 之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36908769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com