NoClassDefFoundError в MultiPart компилируемом методе в Android

1

Я имею дело с следующей проблемой: при попытке загрузить изображение через MultiPart Entity, и кажется, что несколько обновлений на HttpClient/MIME взламывают все. Я пытаюсь использовать следующий код, но он не работает с NoClassDefFoundError:

public static void executeMultipartPost(File image, ArrayList<Cookie> cookies, String myUrlToPost) {
    try {
        // my post instance
        HttpPost httppost = new HttpPost(myUrlToPost);
        // setting cookies for the connection session
        if (cookies != null && cookies.size() > 0) {
            String cookieString = "";
            for (int i=0; i<cookies.size(); ++i) {
                cookieString += cookies.get(i).getName()+"="+cookies.get(i).getValue()+";";
            }
            cookieString += "domain=" + BaseUrl + "; " + "path=/";
            httppost.addHeader("Cookie", cookieString);
        }
        // creating the http client
        HttpClient httpclient = new DefaultHttpClient();
        // creating the multientity part [ERROR OCCURS IN THIS BELLOW LINE]
        MultipartEntity multipartEntity = new MultipartEntity();
        multipartEntity.addPart("photoupload", new FileBody(image));
        httppost.setEntity(multipartEntity);
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity resEntity = response.getEntity();
    } catch (Exception e) {}
}

Этот метод полностью компилируется и использует библиотеки httpclient-4.0.1.jar и httpmime-4.2.jar, но опять же, он сбой для меня в комментариях.

Я что-то упускаю?

  • 1
    Попробуйте clean свой проект.
  • 0
    Привет темно, спасибо за быстрый ответ. Да, я считаю разумным попробовать проект очистки. Я также убрал это прежде, без результатов. Я полагаю (но не уверен), что его ошибка происходит из-за обновлений в .jars, где оно отсутствует в методах или в конфликтующих версиях.
Показать ещё 2 комментария
Теги:
image
http
multipart

3 ответа

4
Лучший ответ

Хорошо, здесь у вас есть библиотеки, необходимые для публикации Multipart, все кредиты Satya Komatineni и David Maclean, писателям Pro Android 3 и теперь 4, и я цитирую их книгу

Чтобы выполнить многопользовательские вызовы POST, вам нужно получить три дополнительных проекта с открытым исходным кодом Apache: Apache Commons IO, Mime4j и HttpMime. Вы можете загрузить эти проекты со следующих веб-сайтов: Commons IO: http://commons.apache.org/io/ Mime4j: http://james.apache.org/mime4j/ HttpMime: http://hc.apache. org/downloads.cgi (внутри HttpClient)

1

У меня такая же проблема, и она была исправлена путем перемещения файлов jars в каталог libs в вашем проекте Android.

  • 0
    Привет Сергей, спасибо за ответ. Мои файлы .jar уже находятся в папке "libs". Вы преуспели в этой многочастной реализации? Какие банки вы использовали? Заранее спасибо.
  • 0
    Я имею в виду ту же проблему с файлами jar и httpclient jar. Я использую httpClient косвенно, с проектом asyncHttp loopj.com/android-async-http, который поставляет jar-библиотеку.
0

Убедитесь, что банка проверена в пути построения проектов. (Проект → Свойства)

  • 0
    Привет Фикс, спасибо за ответ. Мои .jars уже все проверены (вставлены / интегрированы) в моем проекте.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню