2014-12-08 20 views
23

Android'de bir uygulama üzerinde çalışıyorum. Httpcore 4.3.3 kullanıyorum. Ben Bazı googling yaptık ve ben hata alıyorum anlamak ContentType.parse(string)NoSuchFieldError INSTANCE Başlarken 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) 

kullanmaya çalışırken ben bu olsun, ama bunu düzeltmek için ne kadar emin değilim. Okuduğum kadarıyla ContentType, Android ile birlikte gelen BasicHeaderValueParser'ı kullanmaya çalıştı ve bu sınıfın henüz INSTANCE alanına sahip olmadığı görülüyor. Herhangi bir yardım lütfen? Httpcore ait

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

versiyon 4.3.6'yı kullanmayı deneyin Proguard'ı kullanıyor musunuz? – Emmanuel

+0

Ben öyle düşünmüyorum. Geçenlerde runProguard yerine minifyEnabled'ı kullanmanıza olanak tanıyan android stüdyosu 1.0'a yükselttim, sanırım onları yanlışlara ayarladım. Onları doğruya ayarlamayı deneyebilirim, ama bunu düzeltmenin başka bir yolu var mı? -> – Josh

+0

düzeltmek için görünmüyordu apache http kitaplığı yeniden paketlemek için jarjar kullanın veya eski httpmime kitaplığı (chech hangi projion projenizin minsdk ile uyumlu olduğunu chech) – Selvin

cevap

71

Maalesef stok versiyonları Android'de kullanılamaz:

Bu

alakalı ithalatı bulunmaktadır. Bu engel olmaz böylece

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

Farklı bir paket adı android sarma için appache HttpClient portu var: ayrıca

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

Eğer daha fazla 1 olurdu vermek istiyorum – Alex

+1

Bunu deniyordum httpmim ile yaklaşım: 4.5 ve çalışmıyordu, ama 4.3.6 ile (http://stackoverflow.com/a/29473284/1423773) bunu da unutma. – GuilhE

+0

Diğer tüm kütüphaneler ne gereklidir? hata alıyorum çünkü - Hata: (76, 64) hatası: HttpEntity sınıf dosyasına erişemiyor org.apache.http.HttpEntity bulunamadı 'Cevabınızda belirtildiği gibi aynı kütüphaneleri kullandım. Ayrıca - [link] http://stackoverflow.com/questions/32796770/upload-image-via-volley-throwing-error [/ link] –

0

Basit çözüm kullanmaktır gerekli httpcore sınıfları içerir Apache HttpClient Android Port kullanın Android'de mevcut sürümü. Android projesindeki jarı içe aktarın ve "org.apache.http" yerine "ch.boye.httpclientandroidlib" yazın.

2

En son Apache Httpclient Jar dosyasını indirin ve yol ismini kırın. Bu benim için çalışıyor.

0

httpmime ve httpclient-android için uyumsuz jar'ler kullandığınıza benziyor. Httpmime