NoClassDefFoundError при запуске приложения в эмуляторе / телефоне [Обновить до предыдущего вопроса] - PullRequest
0 голосов
/ 30 июня 2011

Это обновление этого вопроса , которое я задал ранее сегодня.

Краткое повторение проблемы: У меня есть приложение для Android, которое требует использования Android SDK от Amazon для AWS. Я добавляю необходимые библиотеки (файлы JAR) в мой путь сборки Eclipse. Однако, когда я запускаю приложение, оно аварийно завершает работу с NoClassDefFoundError.

После небольшого исследования я выделил код, который вызывает ошибку. Я сделал простое фиктивное приложение для Android, которое использует явно ошибочный код. Исходный код для одиночного действия: здесь . И здесь вывод logcat .

Я заметил пару странных вещей по этому поводу. Если библиотека не была добавлена ​​правильно, она должна завершиться ошибкой в ​​строке 34:

credentials = new BasicAWSCredentials( accessKeyId, secretKey );

Но это не так. Вместо этого происходит сбой в строке 62, которая соединяется до строки 48.

Строка 62:

sdb = new AmazonSimpleDBClient( credentials );

Строка 48 (с частью 47):

list.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, getInstance().listDomains().getDomainNames()));

Самое смешное, что пример проекта, поставляемый с SDK, работает отлично. Вот код для SimpleDB , который является одним из исходных файлов. По сути, я скопировал и вставил часть кода, призывающего к доступу к Amazon SimpleDB, но у меня ничего не получается, а образец - нет.

Так, у кого-нибудь есть идеи?


Оказывается, файлы JAR в AWS SDK не были правильно собраны. Похоже, что они пропустили старую библиотеку Apache, которая больше не распространяется публично. Amazon обновил загрузку, и библиотеки больше не выдают NoClassDefFoundError.

Источник: Пост форума на форуме разработчиков мобильных приложений AWS

1 Ответ

1 голос
/ 30 июня 2011

В большинстве случаев NoClassDefFoundError означает, что дублирующиеся версии класса находятся в пути к классам .Я думаю вы должны проверить ваши зависимости / библиотеки на наличие дубликатов .class файлов .Пожалуйста, сначала проверьте этот файл в вашем jar-е: org.apache.commons.httpclient.params.HttpClientParams

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...