Вы должны включить порт платформы перед LWUIT в исключение времени выполнения classpath - PullRequest
2 голосов
/ 01 апреля 2011

Я недавно начал использовать LWUIT.Отличная работа и отличная программа.Я использую Netbeans 6.9.1, S60 SDK и версию LCWUIT для веб-запуска.

Первая проблема, с которой я столкнулся, заключалась в том, что я не смог предварительно проверить файл Transitions3D.java, однако это не было проблемой.Я просто удалил эту часть кода и перекомпилировал библиотеку с нуля.Поэтому я создал простую форму с меткой «Hello World» и попробовал опцию «Create Netbeans Project» в редакторе ресурсов.Я сделал Чистую сборку на test_MIDP (где test - это название моего проекта) и попытался запустить его на эмуляторе.Однако я получаю это сообщение об ошибке:

TRACE: <at java.lang.RuntimeException: You must include the platform port before the LWUIT in the classpath>, startApp threw an Exception
java.lang.RuntimeException: **You must include the platform port before the LWUIT in the classpath**
        at com.sun.lwuit.impl.ImplementationFactory.createImplementation(ImplementationFactory.java:67)
        at com.sun.lwuit.Display.init(Display.java:400)
        at userclasses.MainMIDlet.startApp(MainMIDlet.java:15)
        at javax.microedition.midlet.MIDletTunnelImpl.callStartApp(), bci=1
        at com.sun.midp.midlet.MIDletPeer.startApp(), bci=7
        at com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=269
        at com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
        at com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
        at com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
        at com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
java.lang.RuntimeException: You must include the platform port before the LWUIT in the classpath
        at com.sun.lwuit.impl.ImplementationFactory.createImplementation(ImplementationFactory.java:67)
        at com.sun.lwuit.Display.init(Display.java:400)
        at userclasses.MainMIDlet.startApp(MainMIDlet.java:15)
        at javax.microedition.midlet.MIDletTunnelImpl.callStartApp(), bci=1
        at com.sun.midp.midlet.MIDletPeer.startApp(), bci=7
        at com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=269
        at com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
        at com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
        at com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
        at com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26

"Вы должны включить порт платформы перед LWUIT в classpath"

Есть идеи, как исправить эту ошибку?Я попытался запустить мидлет как с эмулятором S60, так и с JavaME SDK 3.0, и получил ту же ошибку.

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

1 Ответ

4 голосов
/ 06 апреля 2011

Я отвечу на свой пост:

Проблема была в том, что в UI jar я был включен. LWUIT поставляется с 2 "наборами" UI.jar. Общий файл, который находится в папке LWUIT \ UI, и платформо-зависимые, которые находятся в папке LWUIT \ Ports. Общий используется как «родительский» проект, содержащий весь общий код, однако, если вы ДОЛЖНЫ импортировать файл .jar который для вашей платформы. Как указано в файле readme:

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

Пока я перекомпилировал библиотеку, чтобы удалить файл Transitions3D.java, я перекомпилировал (а затем импортировал) универсальный UI.jar. Правильнее всего сделать компиляцию, родительский проект (универсальный UI.jar), ТО скомпилировать библиотеку, специфичную для порта (в моем случае LWUIT \ ports \ MIDP \ UI.jar), а затем импортировать ее в свой проект, и все готово. .

...