Probleme mit Apache HttpComponents in Android-Gradle-Projekt

Ich versuche zu zählen httpmime in meine Anwendung mit dem bauen.gradle-Datei, und alles kompiliert einwandfrei. Stattdessen, wenn die Anwendung versucht, um tatsächlich die MultipartEntityBuilder Klasse, es gibt eine Reihe von WARN-level-Nachrichten, die auf die log sagt, dass es Probleme gibt.

Hier der Auszug aus meinem build.gradle für die Abhängigkeit:

 compile('org.apache.httpcomponents:httpmime:4.+') { 
ausschließen Modul: "httpclient" 
} 

Hier sind die Fehler:

10-09 13:39:37.367 2409-2426/com.Unternehmen.app W/dalvikvm﹕ VFY: nicht lösen statische Feld 6967 (DEFAULT_BINARY) in Lorg/apache/http/Person/ContentType; 
10-09 13:39:37.367 2409-2426/com.Unternehmen.app W/dalvikvm﹕ VFY: unable to find class verwiesen Signatur (Lorg/apache/http/Person/ContentType;) 
10-09 13:39:37.367 2409-2426/com.Unternehmen.app W/dalvikvm﹕ VFY: unable to find class verwiesen Signatur (Lorg/apache/http/Person/ContentType;) 
10-09 13:39:37.367 2409-2426/com.Unternehmen.app W/dalvikvm﹕ VFY: nicht lösen statische Feld 6967 (DEFAULT_BINARY) in Lorg/apache/http/Person/ContentType; 
10-09 13:39:37.367 2409-2426/com.Unternehmen.app W/dalvikvm﹕ VFY: unable to find class verwiesen Signatur (Lorg/apache/http/Person/ContentType;) 
10-09 13:39:37.367 2409-2426/com.Unternehmen.app W/dalvikvm﹕ VFY: unable to find class verwiesen Signatur (Lorg/apache/http/Person/ContentType;) 
10-09 13:39:37.367 2409-2426/com.Unternehmen.app W/dalvikvm﹕ VFY: nicht lösen statische Feld 6967 (DEFAULT_BINARY) in Lorg/apache/http/Person/ContentType; 
10-09 13:39:37.367 2409-2426/com.Unternehmen.app W/dalvikvm﹕ VFY: unable to find class verwiesen Signatur (Lorg/apache/http/Person/ContentType;) 
10-09 13:39:37.367 2409-2426/com.Unternehmen.app W/dalvikvm﹕ VFY: unable to find class verwiesen Signatur (Lorg/apache/http/Person/ContentType;) 
10-09 13:39:37.377 2409-2426/com.Unternehmen.app W/dalvikvm﹕ VFY: nicht lösen statische Methode 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.Unternehmen.app W/dalvikvm﹕ VFY: nicht lösen statische Feld 6968 (DEFAULT_TEXT) in Lorg/apache/http/Person/ContentType; 
10-09 13:39:37.377 2409-2426/com.Unternehmen.app W/dalvikvm﹕ VFY: unable to find class verwiesen Signatur (Lorg/apache/http/Person/ContentType;) 
10-09 13:39:37.377 2409-2426/com.Unternehmen.app W/dalvikvm﹕ VFY: unable to find class verwiesen Signatur (Lorg/apache/http/Person/ContentType;) 

Die java-Klasse:

- import-android.util.Melden Sie; 

import java.io.IOException; 
import java.io.InputStream; 
import java.io.Ausgabestrom; 
import java.net.HttpURLConnection; 
import java.net.URL; 

import org.apache.http.HttpEntity; 
import org.apache.http.Entität.mime.MultipartEntityBuilder; 

public class FileUploader { 
private final static String BOUNDARY = "__--__--__SERVETHEOVERMIND-__-_"; 

public void uploadFile(String targetUrl, MultipartEntityBuilder hochladen, UploadHandler nach) { 
Log.v("FileUploader", "Upload" + "targetUrl"); 

HttpURLConnection con = null; 
Ausgabestrom os = null; 
InputStream is = null; 

try { 
HttpEntity uploadEntity = upload.build(); 
URL post um = new URL(targetUrl); 
con = (HttpURLConnection) post um.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.writecontentto(os); 
os.close(); 

con.connect(); 
is = con.getInputStream(); 

nach.consumeUploadResponse(ist); 
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(ist != null) { 
try { 
ist.close(); 
} catch (IOException e) { 
Log.v("Uploader", "Closed input-stream"); 
} 
} 
} 

public interface UploadHandler { 
public void consumeUploadResponse(InputStream stream); 
} 
} 

[BEARBEITEN] Korrekte Abhängigkeiten, wie pro Antwort

compile('org.apache.httpcomponents:httpmime:4.+') { 
ausschließen Modul: "httpclient" 
} 
compile('org.apache.httpcomponents:httpcore:4.+') { 
ausschließen Modul: "httpclient" 
} 

[ZWEITER EDIT] immer Noch Probleme - jetzt ist es diese fehlenden bits, aber es könnte Probleme auf dem backend:

10-10 11:51:54.998 29597-29638/com.Unternehmen.app W/dalvikvm﹕ VFY: nicht lösen statische Feld 7465 (INSTANZ) in Lorg/apache/http/Nachricht/BasicHeaderValueParser; 
10-10 11:51:54.998 29597-29638/com.Unternehmen.app W/dalvikvm﹕ VFY: nicht lösen statische Feld 7459 (INSTANZ) in Lorg/apache/http/Nachricht/BasicHeaderValueFormatter; 

[NOCH EIN EDIT]

Scheint es, die letzten kleinen fehlenden bits haben keinen Einfluß auf den erfolgreichen Einsatz der MultipartEntityBuilder in diesem Fall.

  • Hast du es geschafft die zu entfernen Lorg/apache/http/Nachricht.... statisches Feld Warnungen? Ich scheine zu e mit einem ähnlichen Problem heute.
  • der erste code-block oben fixiert die Warnung, ich war immer in android studio. Danke!
InformationsquelleAutor A. Rager | 2013-10-09
Schreibe einen Kommentar