2014-12-08 1 views
23

Android에서 앱을 만들고 있습니다. 나는 httpcore 4.3.3을 사용하고있다. 내가 몇 가지 인터넷 검색을 해봤 내가 오류를 받고 있어요 이유를 이해 ContentType.parse(string)NoSuchFieldError 인스턴스 가져 오기 org/apache/http/message/BasicHeaderValueParser

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) 

사용하려고 할 때이 얻을,하지만 난 그것을 해결하는 방법을 확실 해요. 읽은 내용을 보면 ContentType이 Android와 함께 제공되는 BasicHeaderValueParser를 사용하려고 시도하고 해당 클래스에 INSTANCE 필드가 아직없는 것으로 보입니다. 어떤 도움을 주시겠습니까? HttpCore의

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

Proguard를 사용하고 있습니까? – Emmanuel

+0

나는 그렇게 생각하지 않는다. 최근에 안드로이드 스튜디오 1.0으로 업그레이드하여 runProguard 대신 minifyEnabled를 사용하게하고, false로 설정했다고 생각합니다. 나는 그것들을 사실로 설정하려고 노력할 수 있지만 이것을 고칠 수있는 또 다른 방법이 있습니까? -> didnt 그것을 고칠 것 같다 – Josh

+0

아파치 http 라이브러리를 repackage 또는 이전 HTTPmime 라이브러리 (chech 어떤 verion 귀하의 프로젝트 minsdk compatble입니다)를 사용하여 jarjar – Selvin

답변

71

불행하게도 재고 버전 안드로이드에서 사용할 수 없습니다 :

는 관련 수입이다. 그 방해하지 않도록

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

그것은 다른 패키지 이름으로 안드로이드 랩에 대한 Appache HttpClient를 포트입니다 : 또한

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

만약 내가 당신에게 1 개 이상의 upvote 줄 수 – Alex

+1

나는 이것을 시도했다 httpmim과 접근 : 4.5 및 작동하지 않았지만 4.3.6 것입니다 (http://stackoverflow.com/a/29473284/1423773) 너무 잊지 마세요. – GuilhE

+0

다른 모든 라이브러리는 무엇이 필요합니까 ?? 오류 : (76, 64) 오류 : HttpEntity에 액세스 할 수 없습니다. org.apache.http.HttpEntity에 대한 클래스 파일이 없습니다. '귀하의 답장에서 언급 한 것과 같은 라이브러리를 사용했습니다. 또한 나는에서 리디렉션되었습니다 - [링크] http://stackoverflow.com/questions/32796770/upload-image-via-volley-throwing-error [/ link] –

0

간단한 솔루션을 사용하는 것입니다 필요한 HttpCore 클래스가 포함 Apache HttpClient Android Port을 사용하십시오 Android의 기존 버전 Android 프로젝트에서 jar를 가져오고 "org.apache.http"대신 "ch.boye.httpclientandroidlib"을 사용하십시오.

2

최신 Apache Httpclient Jar 파일을 다운로드하고 경로 이름을 굴절시킵니다. 그것은 나를 위해 일합니다.

0

httpmime 및 httpclient-android에 호환되지 않는 jar를 사용하는 것 같습니다. httpmime 버전 4.3.6을 사용해보십시오

관련 문제