I am trying to include httpmime in my application using the build.gradle file and everything compiles fine. Instead, when an application tries to use the MultipartEntityBuilder class, there are a bunch of WARN messages in the log that report problems.
Here is an excerpt from my build.gradle for the dependency:
compile ('org.apache.httpcomponents: httpmime: 4. +') {
exclude module: "httpclient"
}
Here are the errors:
10-09 13: 39: 37.367 2409-2426 / com.company.app W / dalvikvm ﹕ VFY: unable to resolve static field 6967 (DEFAULT_BINARY) in Lorg / apache / http / entity / ContentType; 10-09 13: 39: 37.367 2409-2426 / com.company.app W / dalvikvm ﹕ VFY: unable to find class referenced in signature (Lorg / apache / http / entity / ContentType;) 10-09 13: 39: 37.367 2409-2426 / com.company.app W / dalvikvm ﹕ VFY: unable to find class referenced in signature (Lorg / apache / http / entity / ContentType;) 10-09 13: 39: 37.367 2409-2426 / com.company. app W / dalvikvm ﹕ VFY: unable to resolve static field 6967 (DEFAULT_BINARY) in Lorg / apache / http / entity / ContentType; 10-09 13: 39: 37.367 2409-2426 / com.company.app W / dalvikvm ﹕ VFY: unable to find class referenced in signature (Lorg / apache / http / entity / ContentType;) 10-09 13: 39: 37.367 2409-2426 / com.company.app W / dalvikvm ﹕ VFY: unable to find class referenced in signature (Lorg / apache / http / entity / ContentType;) 10-09 13: 39: 37.367 2409-2426 / com.company. app W / dalvikvm ﹕ VFY: unable to resolve static field 6967 (DEFAULT_BINARY) in Lorg / apache / http / entity / ContentType; 10-09 13: 39: 37.367 2409-2426 / com.company.app W / dalvikvm ﹕ VFY: unable to find class referenced in signature (Lorg / apache / http / entity / ContentType;) 10-09 13: 39: 37.367 2409-2426 / com.company.app W / dalvikvm ﹕ VFY: unable to find class referenced in signature (Lorg / apache / http / entity / ContentType;) 10-09 13: 39: 37.377 2409-2426 / com.company. app W / dalvikvm ﹕ VFY: unable to resolve static method 19478: Lorg / apache / http / util / Args; .notNull (Ljava / lang / Object; Ljava / lang / String;) Ljava / lang / Object; 10-09 13: 39: 37.377 2409-2426 / com.company.app W / dalvikvm ﹕ VFY: unable to resolve static field 6968 (DEFAULT_TEXT) in Lorg / apache / http / entity / ContentType; 10-09 13: 39: 37.377 2409-2426 / com.company.app W / dalvikvm ﹕ VFY: unable to find class referenced in signature (Lorg / apache / http / entity / ContentType;) 10-09 13: 39: 37.377 2409-2426 / com.company.app W / dalvikvm ﹕ VFY: unable to find class referenced in signature (Lorg / apache / http / entity / ContentType;)
Java class:
import android.util.Log;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import org.apache.http.HttpEntity;
import org.apache.http.entity.mime.MultipartEntityBuilder;
public class FileUploader {
private final static String BOUNDARY = "__ - __ - __ SERVETHEOVERMIND -__-_";
public void uploadFile (String targetUrl, MultipartEntityBuilder upload, UploadHandler after) {
Log.v ("FileUploader", "Uploading to" + targetUrl);
HttpURLConnection con = null;
OutputStream os = null;
InputStream is = null;
try {
HttpEntity uploadEntity = upload.build ();
URL postTo = new URL (targetUrl);
con = (HttpURLConnection) postTo.openConnection ();
con.setRequestMethod ("POST");
con.setRequestProperty ("Content-Type", "multipart / form-data; boundary =" + BOUNDARY);
con.setDoOutput (true);
con.setDoInput (true);
con.setUseCaches (false);
con.addRequestProperty ("Connection", "Keep-Alive");
con.setRequestProperty ("Content-length", String.valueOf (uploadEntity.getContentLength ()));
os = con.getOutputStream ();
uploadEntity.writeTo (os);
os.close ();
con.connect ();
is = con.getInputStream ();
after.consumeUploadResponse (is);
con.disconnect ();
} catch (IOException e) {
e.printStackTrace ();
}
if (con! = null) {
con.disconnect ();
}
if (os! = null) {
try {
os.close ();
} catch (IOException e) {
Log.v ("Uploader", "Closed output stream");
}
}
if (is! = null) {
try {
is.close ();
} catch (IOException e) {
Log.v ("Uploader", "Closed input stream");
}
}
}
public interface UploadHandler {
public void consumeUploadResponse (InputStream stream);
}
}
[EDIT] Correct dependencies according to the answer
compile ('org.apache.httpcomponents: httpmime: 4. +') {
exclude module: "httpclient"
}
compile ('org.apache.httpcomponents: httpcore: 4. +') {
exclude module: "httpclient"
}
[SECOND IMAGE] There are still problems - now these are all the other missing bits, but this may be a problem on the server:
10-10 11: 51: 54.998 29597-29638 / com.company.app W / dalvikvm ﹕ VFY: unable to resolve static field 7465 (INSTANCE) in Lorg / apache / http / message / BasicHeaderValueParser;
10-10 11: 51: 54.998 29597-29638 / com.company.app W / dalvikvm ﹕ VFY: unable to resolve static field 7459 (INSTANCE) in Lorg / apache / http / message / BasicHeaderValueFormatter;
[NEXT ANOTHER CHANGE]
The last missing bits do not seem to affect the successful use of MultipartEntityBuilder in this case.
A. rager
source share