ExceptionInInitializerError при попытке загрузить файл с устройства Android - PullRequest
0 голосов
/ 13 февраля 2012

В течение последнего времени я пытался загрузить изображение на свой сервер, и мой код работает при загрузке с жесткого диска на моем компьютере, но когда я использую точно такой же код в своем приложении для Android, я сталкиваюсь с этой ошибкой:

E/AndroidRuntime(26170): Caused by: java.lang.ExceptionInInitializerError

Вот мой код:

public String uploadFile(File imageFile) {

    FormDataMultiPart form = new FormDataMultiPart().field("content", imageFile, MediaType.MULTIPART_FORM_DATA_TYPE)
    WebResource webResource = Client.create().resource(serverURL);
    ClientResponse response = webResource.type(MediaType.MULTIPART_FORM_DATA).accept(MediaType.APPLICATION_JSON).post(ClientResponse.class, form);
    return response.toString();

}

Это первая строка метода, которая обнаруживает ошибку на устройствах Android.Вот это:

FormDataMultiPart form = new FormDataMultiPart().field("content", imageFile, MediaType.MULTIPART_FORM_DATA_TYPE)

Единственная переменная - это imageFile, и когда я решил запустить этот код в обычном приложении Java (в отличие от приложения для Android), загрузка изображения работает без проблем.

У меня есть это разрешение в моем манифесте Android:

Кроме того, непосредственно перед тем, как я обнаружил ошибку, я решил распечатать всю информацию, которую мог получить с файлом, и все было правильно, поэтому я уверен, что это правильный файл и он не нулевой.

Я использую библиотеки Джерси, чтобы попытаться это сделать, поскольку у Scribe были проблемы с загрузкой файлов.

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

РЕДАКТИРОВАТЬ

Вот трассировка стека ошибки.Строка 733 - это строка:

FormDataMultiPart form = new FormDataMultiPart().field("content", imageFile, MediaType.MULTIPART_FORM_DATA_TYPE)

Jersey Error Stack Trace

...