Использование Simple XML и получение NoClassDefFoundError в Android
Я пытаюсь использовать Simple XML для преобразования моих java-объектов в формат XML в приложении для Android.
Я получаю NoClassDefFoundError в строке
Serializer serializer = new Persister();
java.lang.NoClassDefFoundError: org.simpleframework.xml.core.Persister
У меня есть simple-xml-2.6.1.jar
в пути класса проекта, и когда я получил NoClassDefFoundError
, я также помещал эти 3 баночки в путь к классам
stax-1.2.0.jar
stax-api-1.0.1.jar
xpp3-1.1.3_8.jar
но не используется.
По-прежнему имеет NoClassDefFoundError
.
Любая помощь будет оценена. Спасибо.
Ответы
Ответ 1
Есть ли у вас простой XML в разделе "Заказ и экспорт" в конфигурации "Путь сборки"?
Я просто столкнулся с этой проблемой после обновления до последних плагинов SDK
и Eclipse для Android, успешно используя Simple в течение нескольких месяцев.
По какой-то причине после обновления мне пришлось пойти и:
- Отметьте
simple-xml-2.6.2.jar
в разделе "Заказ и экспорт"
- Очистите мой проект (важно)
После этих двух шагов проблема исчезла.
Ответ 2
Я решил такую же проблему, как ваш, изменяя путь сборки Java.
Я установил Android DDMS 17.0.0.v201203161636-291853
сегодня и появился NoClassDefFoundError
.
Как исправить флажок → Проверить флажок simple-xml
и присвоить ему более высокий приоритет, чем yourproject/src/main/java
![enter image description here]()
Ответ 3
Вам не нужны эти три другие банки в вашем пути к классам.
Убедитесь, что ваш путь к классам выглядит так и что вы помещаете файл jar в папку lib (для соглашения):
![project build path]()
Добавить библиотеку в путь сборки
![add to build path]()
Ответ 4
вы получили эту ошибку, потому что, возможно, вы не объявляете какую-либо вашу активность в файле манифеста. Поэтому, пожалуйста, добавьте его в свой файл манифеста, как показано ниже:
<activity android:name=".DatabaseActivity"></activity>
здесь DatabaseActivity - это моя активность приложения.
попробуйте.
Ответ 5
При развертывании приложения на вашем устройстве (или эмуляторе) возникают ли какие-либо ошибки в банке, которую вы пытаетесь включить? Не все баночки будут работать на Android. Более старый код может представлять проблему. Возможно, вам понадобится получить исходный код и перекомпилировать интересующую вас банку. Это гарантирует, что байт-код будет совместим с Android. Я получил эту ошибку раньше с некоторыми баночками, которые сказали, что они работали для меня даже с ошибками. Они также были связаны с xml (не SimpleXML).
Ответ 6
Это немного странно, но это работает для меня.
Serializer serializer;
Persister persiter = new Persister();
serializer = persiter;