Как мне заставить работать kXML?

Я пытаюсь реализовать существующий синтаксический анализатор XML: kXML.

Я столкнулся со следующей ошибкой:

java.lang.NoClassDefFoundError: org / xmlpull / v1 / XmlPullParserException
 на com.sun.midp.midlet.MIDletState.createMIDlet(+29)
 на com.sun.midp.midlet.Scheduler.schedule(+52)
 на com.sun.midp.main.Main.runLocalClass(+28)
 на com.sun.midp.main.Main.main(+80)
Исполнение завершено.

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

C: \ WTK2.5.2_01 \ bin \ preverify -classpath.; C: \ java_libraries \ wirelesstoolkit \ midpapi20.jar org.kxml2.io.KXmlParser
C: \ WTK2.5.2_01 \ bin \ preverify -classpath.; C: \ java_libraries \ wirelesstoolkit \ midpapi20.jar org.kxml2.io.KXmlSerializer
C: \ WTK2.5.2_01 \ bin \ preverify -classpath.; C: \ java_libraries \ wirelesstoolkit \ midpapi20.jar org.xmlpull.v1.XmlPullParser
C: \ WTK2.5.2_01 \ bin \ preverify -classpath.; C: \ java_libraries \ wirelesstoolkit \ midpapi20.jar org.xmlpull.v1.XmlPullParserException
C: \ WTK2.5.2_01 \ bin \ preverify -classpath.; C: \ java_libraries \ wirelesstoolkit \ midpapi20.jar org.xmlpull.v1.XmlPullParserFactory
C: \ WTK2.5.2_01 \ bin \ preverify -classpath.; C: \ java_libraries \ wirelesstoolkit \ midpapi20.jar org.xmlpull.v1.XmlSerializer

выход cd

C:\Program Files\Java\jdk1.6.0_14\bin\jar -cvf ..\kxml2.jar org

Я получаю следующие ошибки (из них несколько):

C: \ Users \ **** \ Desktop \ kxmlfolder> C: \ WTK2.5.2_01 \ bin \ preverify -classpath.; C: \
java_libraries \ wirelesstoolkit \ midpapi20.jar org.kxml2.io.KXmlParser
Ошибка предварительной проверки класса org.xmlpull.v1.XmlPullParser
    java/lang/NoClassDefFoundError: java/lang/Object

C:\Users\****\Desktop\kxmlfolder>C:\WTK2.5.2_01\bin\preverify -classpath .;C:\
java_libraries\wirelesstoolkit\midpapi20.jar org.kxml2.io.KXmlSerializer
Ошибка предварительной проверки класса org.xmlpull.v1.XmlSerializer
    java/lang/NoClassDefFoundError: java/lang/Object

В чем может быть причина?

5 ответов

Ваша проблема заключается в том, что вам удалось настроить среду разработки для компиляции вашего мидлета с библиотеками kXML, но вы не включили их в файл jar мидлета, поэтому эмулятор J2ME не знает, как найти классы, импортируемые вашим мидлетом во время выполнения.

Вам нужно ссылку kxml-source в buildpath Настройки. Мне было очень трудно 3 дня, чтобы понять это.

В eclipse просто щелкните правой кнопкой мыши на имени проекта, выберите свойства, выберите Java Build Path, перейдите к ORDER & EXPORT и щелкните по внешнему файлу jX kXml, который будет включен вместе с файлом jar вашего проекта. Это должно работать.

Может быть, вам следует включить библиотеку kXml. если вы используете eclipse MTJ, просто щелкните правой кнопкой мыши на имени проекта, выберите свойства, выберите Java Build Path в списке, щелкните правой кнопкой мыши выберите библиотеки, добавьте внешнюю кнопку jar, найдите и выберите файл kXml.jar. Теперь вы увидите новую библиотеку. Попробуйте запустить проект снова.

Я надеюсь, что мои выводы каким-то образом связаны: при просмотре учебника по XStream http://x-stream.github.io/tutorial.html я получил то же сообщение об ошибке. Я обнаружил, что мне нужно было включить kxml2-[version].jar (приведенный в комплекте), а не kxml2-min-[version].jar, как указано в руководстве. Поэтому, следуя тому, что сказал QuickRecipesOnSymbian, я думаю, что включение правильного фляги крайне важно.

Другие вопросы по тегам