NoClassDefFoundError при запуске приложения в эмуляторе / телефоне - PullRequest
2 голосов
/ 30 июня 2011

Я использую Eclipse для управления своим проектом Android, который использует библиотеки Android Amazon для AWS. Я добавил файлы jar библиотеки в папку ./libs, из которой я добавил библиотеки в путь сборки Java (Свойства проекта -> Путь сборки Java -> Библиотеки -> Добавить JARS ...). Мое приложение компилируется правильно, но когда я запускаю его на эмуляторе или на телефоне, я получаю NoClassDefFoundError. Я понимаю, что эта ошибка обычно возникает, когда приложение правильно скомпилировано, но библиотеки в конечном итоге отсутствуют в экспортированном файле apk.

Я пропустил шаг?

Edit:

Вот трассировка стека до точки, где мое приложение ссылается на нее.

java.lang.NoClassDefFoundError: org.apache.commons.httpclient.params.HttpClientParams
   at com.amazonaws.http.HttpClient.configureHttpClient(Unknown Source)
   at com.amazonaws.http.HttpClient.<init>(Unknown Source)
   at com.amazonaws.AmazonWebServiceClient.<init>(Unknown Source)
   at com.amazonaws.services.simpledb.AmazonSimpleDBClient.<init>(Unknown Source)
   at com.amazonaws.services.simpledb.AmazonSimpleDBClient.<init>(Unknown Source)
   at lee.medical.icu.dataentry.MainMenuActivity.connectToDb(MainMenuActivity.java:121)

Ответы [ 3 ]

1 голос
/ 01 июля 2011

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

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

0 голосов
/ 19 июля 2012

У меня была такая же проблема, и я нашел разрешение в посте ниже. короче говоря, вы можете захотеть поместить ваш внешний jar-файл в каталог libs (НЕ в lib) затем включите его в качестве внешнего файла JAR, щелкнув правой кнопкой мыши на проекте, затем

properties >> java build path >> add external jars >> libs/yourLibrary.jar

полное объяснение здесь .

0 голосов
/ 30 июня 2011

Видите ли вы библиотеки в пункте «Ссылки на библиотеки» в представлении пакета? Если нет, выберите файлы в навигаторе проекта, щелкните их правой кнопкой мыши «Путь сборки» -> «Добавить в путь сборки»

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