Search code examples
androidhttprequesthttpresponseapache-httpclient-4.xapache-mina

unable to resolve Apache HTTP library to send Request and Receive Response


i am trying to upload image using Apache HTTP Library but i will get this kind of error.

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

at org.apache.http.entity.ContentType.toString(ContentType.java:153) it will give library error and crashing my application. unable to find solution regarding this problem

here is my logcat.

          E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #5
          Process: com.technotechindia.talknshop, PID: 9660
         java.lang.RuntimeException: An error occured while executing doInBackground()
         at android.os.AsyncTask$3.done(AsyncTask.java:304)
         at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
         at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
         at java.util.concurrent.FutureTask.run(FutureTask.java:242)
         at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
         at java.lang.Thread.run(Thread.java:818)
         Caused by: java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/message/BasicHeaderValueFormatter; in class Lorg/apache/http/message/BasicHeaderValueFormatter; or its superclasses (declaration of 'org.apache.http.message.BasicHeaderValueFormatter' appears in /system/framework/ext.jar)
  at org.apache.http.entity.ContentType.toString(ContentType.java:153)
  at org.apache.http.entity.mime.MultipartFormEntity.<init>(MultipartFormEntity.java:53)
  at org.apache.http.entity.mime.MultipartEntityBuilder.buildEntity(MultipartEntityBuilder.java:236)
          at         org.apache.http.entity.mime.MultipartEntity.getEntity(MultipartEntity.java:119)
          at org.apache.http.entity.mime.MultipartEntity.isChunked(MultipartEntity.java:138)
         at org.apache.http.protocol.RequestContent.process(RequestContent.java:84)
  at org.apache.http.protocol.BasicHttpProcessor.process(BasicHttpProcessor.java:295)
  at org.apache.http.protocol.HttpRequestExecutor.preProcess(HttpRequestExecutor.java:165)
  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:427)
  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:580)
  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:503)
  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:481)
  at com.technotechindia.talknshop.AddStoreToLocation$UploadImages.doInBackground(AddStoreToLocation.java:454)
  at com.technotechindia.talknshop.AddStoreToLocation$UploadImages.doInBackground(AddStoreToLocation.java:372)
  at android.os.AsyncTask$2.call(AsyncTask.java:292)
  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
  at java.lang.Thread.run(Thread.java:818) 

so whenever i m going to request server give me this kind of error


Solution

  • Unfortunately stock versions of HttpCore cannot be used in Android. Please use Apache HttpClient Android Port which also includes requisite HttpCore classes

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