Intereting Posts
Android: принудительно нажмите EditText, чтобы удалить фокус? Как создать выпадающее меню, подобное этому в приложении Evernote? Как вставить медиаплеер VLC в мое приложение для Android Запись звонков – заставить работать Nexus 5X (возможно создание корневого или пользовательского ПЗУ) Ширина раскрытия текста Autocomplete для Android Eclipse застревает при попытке запустить приложение для Android Как заставить значок переполнения панели действий показать Установить ширину динамического текста Данные остаются в локальном хранилище данных после открепления Что такое файл keystore для Android и для чего он используется? Intent.ACTION_VIEW для Android Image Выберите первые n строк в contentProvider Как получить значение EditText и отобразить его на экране через TextView? Включить блокировку кнопок на виртуальной клавиатуре Android Перечислите все файлы и папку Dropbox с помощью API Dropbox и загрузите файл, нажатый в android

NoClassDefFondError в Android … но класс находится в одной банке, включенной в путь класса

Я разрабатываю приложение на Android. Он должен иметь возможность сделать снимок и отправить эту фотографию на веб-страницу. Это код:

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); 

У меня есть библиотеки, необходимые в моем ClassPath (httpclient, apache-mime4j-core, httpcore и httpmime). Он не показывает ошибок во время компиляции. Но, когда я запускаю проект, он говорит «java.lang.NoClassDefFoundError: org.apache.http.entity.mime.MultipartEntity», но этот класс существует в банках (точно в httpMime). Вот полный след:

 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) 

Я пытался использовать более старые версии всех банок, используемых в этой задаче, но он все равно не работает. Эти банки появляются в «справочных библиотеках» в проекте Android.

Я все пробовал. Кто-нибудь знает, почему это происходит? Я собираюсь броситься за окном.

Заранее спасибо!

Solutions Collecting From Web of "NoClassDefFondError в Android … но класс находится в одной банке, включенной в путь класса"

Вам нужно создать папку с именем libs в вашем проекте и скопировать упоминаемые баночки в эту папку.

Будучи безуспешным при обновлении, я загрузил последнюю и самую большую. Но класс MultipartEntity не найден. Я снова добавил его в проект. Я убедился, что это было в папке под названием «libs», но не повезло. Andong попросил меня проверить настройки проекта. Свойства проекта -> Путь сборки Java -> Заказ и экспорт: убедитесь, что установлены частные библиотеки Android. (Я проверил их все). Очистите свой проект. Проблема ушла.

Настолько странно, что у моего приложения уже были файлы в «lib» и получил этот сбой. Я переименовал его в «libs» после ответа идиотигера, и он сработал.

Откройте Свойства для своего проекта в Eclipse. И откройте «Заказ и экспорт», убедитесь, что все нужные библиотеки выбраны. И нажмите «Проект»> «Очистить». Наконец, ваша проблема должна исчезнуть.

У меня было несколько проблем с этим сегодня:

A) У меня были все файлы jar в каталоге libs и щелкните правой кнопкой мыши Project> Build Path> Add external jars> selected jar files. Затем пошли «заказ и экспорт», все еще проблема. Б) Оказывается, что httpclient-4.3.1.jar и httpmime-4.3.1.jar недостаточно. Мне нужно было добавить httpcore-4.3.jar.

Это избавило от ошибки! : DI провел почти 4 часа сегодня, пытаясь исправить это 🙁

Я решил такую ​​же проблему:

  1. Откройте pom.xml в проекте, с которым вы сталкиваетесь
    Java.lang.NoClassDefFoundError: org / apache / http / entity / mime / MultipartEntityBuilder

  2. В зависимостях добавьте этот фрагмент кода.

      <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.5.2</version> <scope>test</scope> </dependency> 
  3. Очистите и перестройте код.

Это будет работать.