Konnte nicht finden die Klasse " org.apache.http.Entität.mime.Inhalt.Filebody', referenced from method
Was ich versuche zu tun, ist senden Sie ein Bild an einen web-server. Wenn ich eine Methode aufrufen in mein Android-Projekt bekomme ich folgende Fehlermeldung: could not find class 'org.apache.http.Entität.mime.Inhalt.Filebody', referenced from method com.Beispiel.tc.Senden.senden.
Dies geschieht eventhough ich habe die folgenden Importe:
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.DefaultHttpClient;
Dies ist, was die Klasse aussieht, in der die Methode liegt:
public class Send {
public Send(){
}
public static String send(String path) throws Exception {
String filePath = path;
String svar;
HttpClient httpclient = new DefaultHttpClient();
try {
HttpPost httppost = new HttpPost("path to web server");
FileBody pic = new FileBody(new File(filePath));
MultipartEntity requestEntity = new MultipartEntity();
requestEntity.addPart("file", pic);
httppost.setEntity(requestEntity);
System.out.println("executing request " + httppost.getRequestLine());
HttpResponse response = httpclient.execute(httppost);
HttpEntity responseEntity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
response.getEntity().writeTo(outstream);
byte [] responseBody = outstream.toByteArray();
svar = new String(responseBody);
System.out.println(svar);
} finally {
try {
httpclient.getConnectionManager().shutdown();
}
catch (Exception ignore) {
}
}
return svar;
}
}
Kann jeder sehen, was das problem ist?
- Bist du sicher, dass es in den java build path?
- hast du eine Antwort gefunden?
- Sind Sie mit proguard ?
- Dieser helfen könnte
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fügen Sie diese zwei Abhängigkeit
Müssen Sie haben httpmime-4.0.jar in Ihren Klassenpfad ein. Sie kann (ich denke, Sie tun) haben diese jar-Datei in Ihrem Projekt, aber es ist in Ihrer Anwendung während der Laufzeit?
Wenn ich es richtig verstehe, bekommen Sie diese von der android-Anwendung. Sie müssen diese jar-Datei im classpath Ihrer android.
Download Apache HttpComponents-jar-Datei von diesem link http://hc.apache.org/downloads.cgi und erstellen Sie eine /libs-Ordner in Ihrem Android-Projekt-Verzeichnis und kopieren Sie die JAR-Datei in dieses Verzeichnis. zu Ihrem Projekt hinzufügen, indem Sie auf der Projekt-Eigenschaften für Ihr Android-Projekt und wählen Sie dann Java Build Path-Einstellungen, wählen Sie die Registerkarte "Bibliotheken" und klicken Sie auf Add JAR " und wählen Sie die jar in das /libs-Verzeichnis.
Können Sie auch diese Dateien aus dem Eclipse-ADT-bundle-die zimmerreserviereung, ohne das laden Sie Sie separat - siehe die Antwort hier:
https://stackoverflow.com/a/27906193/334402
Beachten Sie, dass Sie die Fehlermeldung erhalten das original-poster markiert, d.h. 'nicht finden Konnten, eine Klasse" org.apache.http.Entität.mime.Inhalt.Filebody', wenn Sie nur fügen Sie die externen JAR-Dateien dem build path aber vergessen, importieren Sie das Archiv in Ihr Projekt auch.
Hinzufügen Abhängigkeit :