HTTP-Requests library on Android, FATAL EXCEPTION issue

edited April 2016 in Android Mode

i'm testing with really simple android app which save the captured image then upload to the server on each time during the http post session the app got crashed,reported as following:

FATAL EXCEPTION: Animation Thread java.lang.NoSuchMethodError: org.apache.http.util.EntityUtils.consume at http.requests.PostRequest.send(Unknown Source) at processing.test.android_image.android_image.postImg(android_image.java:145) at processing.test.android_image.android_image.draw(android_image.java:56) at processing.core.PApplet.handleDraw(Unknown Source) at processing.core.PGraphicsAndroid2D.requestDraw(Unknown Source) at processing.core.PApplet.run(Unknown Source) at java.lang.Thread.run(Thread.java:841)

but without any issue running on desktop. any ideas?

Answers

  • I believe I am seeing this exact same behavior. I am successfully posting from my Processing app on the desktop, but failing when I port the same code to Android and run from my cell phone. Where do you find the stack trace? I am only seeing that my app crashes just after completing the HTTP POST - from the looks of this, and having looked through the code of the HTTP-Requests library, this is the code that processes the returned content in the response. EntityUtils.consume is called to extract the response data, and assign it to the content instance variable of the PostRequest object. I don't know why there would be no such method though.

  • edited April 2016

    Here is the code in PostRequest that executes the post, and then immediately following, processes the response:

    response = httpClient.execute( httpPost );
    HttpEntity   entity   = response.getEntity();
    this.content = EntityUtils.toString(response.getEntity());
    
    if( entity != null ) EntityUtils.consume(entity);
    
  • java.lang.NoSuchMethodError: org.apache.http.util.EntityUtils.consume

    this is pretty damning. i think the standard android http library is cut down from the PC version and doesn't have all the methods.

    in that code line 3 and line 5 look to be doing the same thing, only the result of line 3 isn't used (in the snippet). if line 3 works and line 5 doesn't (NoSuchMethod) then just drop line 5.

  • yes, android documentation for EntityUtils shows no consume():

    http://www.mit.edu/afs.new/sipb/project/android/docs/reference/org/apache/http/util/EntityUtils.html

    this:
    http://stackoverflow.com/questions/29294479/android-deprecated-apache-module-httpclient-httpresponse-etc
    and this:
    http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html

    suggests that above api level 22 the whole httpclient has been deprecated... but i'm still using android4 something so...

Sign In or Register to comment.