Je suis en train de développer une application Android. Elle doit être capable de prendre une photo et de l'envoyer à une page web. Voici le code :
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("someurl");
MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); //Ici lance l'exception
multipartEntity.addPart("data",
new InputStreamBody(
new ByteArrayInputStream(byteArray),
"image/png"));
multipartEntity.addPart("caption", new StringBody(filename));
httpPost.setEntity((HttpEntity) multipartEntity);
J'ai les bibliothèques nécessaires dans mon ClassPath (httpclient, apache-mime4j-core, httpcore et httpmime). Il n'y a pas d'erreur lors de la compilation. Mais quand je lance le projet, il affiche "java.lang.NoClassDefFoundError : org.apache.http.entity.mime.MultipartEntity" alors que cette classe EXISTE dans les jars (dans httpMime, exactement). Voici la trace complète :
04-09 10:21:59.362: E/AndroidRuntime(10352): FATAL EXCEPTION: main
04-09 10:21:59.362: E/AndroidRuntime(10352): java.lang.NoClassDefFoundError: org.apache.http.entity.mime.MultipartEntity
04-09 10:21:59.362: E/AndroidRuntime(10352): at com.publidirecta.AppAzafata.IniciarGPSActivity2.enviarImagen(IniciarGPSActivity2.java:206)
04-09 10:21:59.362: E/AndroidRuntime(10352): at com.publidirecta.AppAzafata.IniciarGPSActivity2.onActivityResult(IniciarGPSActivity2.java:196)
04-09 10:21:59.362: E/AndroidRuntime(10352): at android.app.Activity.dispatchActivityResult(Activity.java:3908)
04-09 10:21:59.362: E/AndroidRuntime(10352): at android.app.ActivityThread.deliverResults(ActivityThread.java:2549)
04-09 10:21:59.362: E/AndroidRuntime(10352): at android.app.ActivityThread.handleSendResult(ActivityThread.java:2595)
04-09 10:21:59.362: E/AndroidRuntime(10352): at android.app.ActivityThread.access$2000(ActivityThread.java:121)
04-09 10:21:59.362: E/AndroidRuntime(10352): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:973)
04-09 10:21:59.362: E/AndroidRuntime(10352): at android.os.Handler.dispatchMessage(Handler.java:99)
04-09 10:21:59.362: E/AndroidRuntime(10352): at android.os.Looper.loop(Looper.java:130)
04-09 10:21:59.362: E/AndroidRuntime(10352): at android.app.ActivityThread.main(ActivityThread.java:3701)
04-09 10:21:59.362: E/AndroidRuntime(10352): at java.lang.reflect.Method.invokeNative(Native Method)
04-09 10:21:59.362: E/AndroidRuntime(10352): at java.lang.reflect.Method.invoke(Method.java:507)
04-09 10:21:59.362: E/AndroidRuntime(10352): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
04-09 10:21:59.362: E/AndroidRuntime(10352): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
04-09 10:21:59.362: E/AndroidRuntime(10352): at dalvik.system.NativeStart.main(Native Method)
J'ai essayé avec des versions antérieures de tous les jars utilisés pour cette tâche, mais cela ne fonctionne toujours pas. Ces jars apparaissent dans les "Bibliothèques référencées" du projet Android.
J'ai tout essayé. Quelqu'un a une idée de pourquoi cela se produit ? Je suis sur le point de me jeter par la fenêtre.
Merci d'avance !