获取NoSuchFieldError INSTANCE org / apache / http / message / BasicHeaderValueParser

我正在开发Android上的应用程序。 我使用的是httpcore 4.3.3。 我尝试使用ContentType.parse(string)

 java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/message/BasicHeaderValueParser; in class Lorg/apache/http/message/BasicHeaderValueParser; or its superclasses (declaration of 'org.apache.http.message.BasicHeaderValueParser' appears in /system/framework/ext.jar) 

我做了一些谷歌search,我明白为什么我得到的错误,但我不确定如何解决它。 从我读过的内容看来,ContentType试图利用Android自带的BasicHeaderValueParser,并且该类还没有INSTANCE字段。 请帮忙吗?

这些是相关的import:

 compile('org.apache.httpcomponents:httpmime:4.3.6') { exclude module: 'httpclient' } compile 'org.apache.httpcomponents:httpcore:4.3.3' 

Solutions Collecting From Web of "获取NoSuchFieldError INSTANCE org / apache / http / message / BasicHeaderValueParser"

不幸的是,股票版本的HttpCore不能在Android中使用。 请使用Apache HttpClient的Android端口 ,其中也包括必要的HttpCore类

 compile('org.apache.httpcomponents:httpmime:4.3.6') { exclude module: 'httpclient' } compile 'org.apache.httpcomponents:httpclient-android:4.3.5' 

下载最新的Apache Httpclient Jar文件并折射path名称。 这对我行得通。

简单的解决scheme是使用:

https://code.google.com/p/httpclientandroidlib/

这是用于Android的Appache HttpClient端口封装在一个不同的包名称,以便不会干扰Android中的现有版本。 在Android项目中导入jar,而不是“org.apache.http”,使用“ch.boye.httpclientandroidlib”。

看起来像你使用不兼容jar的httpmime和httpclient-android。 尝试使用httpmime的4.3.6版本