NoClassDefFondError dans Android... mais la Classe est dans un pot inclus dans le Classpath
Je développe une Application sous Android. Il doit être capable de prendre une photo, et d'envoyer cette photo pour une page web. C'est le code:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("someurl");
MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); //Here throws the 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 (client http, apache-mime4j-core, httpcore et httpmime). Il ne montre aucune erreur de compilation. mais, lorsque je lance le projet, il est dit " de java.lang.NoClassDefFoundError: org.apache.http.de l'entité.le mime.MultipartEntity" mais cette classe N'existe dans les pots (en 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 plus anciennes de toutes les jarres utilisées dans cette tâche, mais cela ne fonctionne pas. Que les pots n'apparaissent dans la "cité des Bibliothèques" dans le projet Android.
J'ai tout essayé. Quelqu'un a une idée de pourquoi cela se produit? im sur le point de me jeter par la fenêtre.
Vous en remercie d'avance!
- Créer un autre nouveau projet, et de copier ces classes dans cette situation et essayez de nouveau...
- voir cette réponse qui peut vous aider | stackoverflow.com/a/10046725/1289716
- J'ai juste eu cette Eclipse laissez-moi la référence du fichier, mais quand il a couru, erreur! Je viens de recomplied et il a travaillé tho ....
Vous devez vous connecter pour publier un commentaire.
vous avez besoin de créer un dossier nommé
libs
dans votre projet, et de la copie que vous l'avez mentionné les bocaux à ce dossier.Être infructueuse à la mise à jour automatique de chose, j'ai téléchargé la dernière et la plus grande. Mais le MultipartEntity classe ne pouvait pas être trouvé. J'ai ajouté au projet. J'ai fait en sorte qu'il était dans un dossier appelé 'libs' - mais pas de chance. Andong est qui m'a incité à vérifier les préférences du projet. Propriétés du projet -> Java Build Path -> l'Ordre et à l'Exportation: assurez-vous que Android Bibliothèques Privées est cochée. (J'ai vérifié tous). Le nettoyage de votre projet. Le problème a disparu.
httpmime
qui devait être vérifié dans "l'Ordre et à l'Exportation"; - après un projet de nettoyage, le problème a disparu!Tellement bizarre, mon appli déjà eu les fichiers dans "lib" et a obtenu ce crash. Je l'ai renommé "libs" à la suite de idiottiger de réponse et cela a fonctionné.
Ouvrez les Propriétés de votre projet dans Eclipse. Et la Commande et à l'Exportation, assurez-vous que toutes les bibliothèques dont vous avez besoin sont sélectionnés. Et cliquez sur le Projet>nettoyer. Enfin, votre problème devrait avoir disparu.
J'ai eu quelques problèmes avec cela aujourd'hui:
un), j'ai eu tous les fichiers jar du répertoire libs et est allé clic droit sur Project > Build Path > Add external jars > sélectionné les fichiers jar. Puis est allé à "l'ordre et à l'exportation", a encore la question.
b) s'avère que httpclient-4.3.1.jar et httpmime-4.3.1.jar ce n'était pas suffisant. J'ai besoin d'ajouter httpcore-4.3.jar ainsi.
Que se débarrasser de l'erreur! 😀 j'ai passé près de 4 heures aujourd'hui d'essayer de résoudre ce problème 🙁
J'ai résolu le même problème comme ceci:
Ouvrir pom.xml dans le projet que vous êtes confrontés à ce
java.lang.NoClassDefFoundError: org/apache/http/entité/mime/MultipartEntityBuilder
En vertu de dépendances, ajoutez ce bout de code.
Nettoyer et reconstruire le code.
Il va travailler.