Это обновление этого вопроса , которое я задал ранее сегодня.
Краткое повторение проблемы: У меня есть приложение для 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