Java me 在类路径运行时异常中,必须在LWUIT之前包含平台端口

Java me 在类路径运行时异常中,必须在LWUIT之前包含平台端口,java-me,lwuit,midp,Java Me,Lwuit,Midp,我最近开始使用LWUIT。伟大的工作和伟大的计划。我正在使用Netbeans 6.9.1、S60 SDK和webstart版本的LCWUIT 我面临的第一个问题是无法预先验证Transitions3D.java文件,但这不是问题。我只是删除了那部分代码,从头开始重新编译库。因此,我创建了一个带有“helloworld”标签的简单表单,并尝试了资源编辑器的“createnetbeansproject”选项。我在test_MIDP(test是我项目的名称)上做了一个干净的构建,并尝试在模拟器上运行它

我最近开始使用LWUIT。伟大的工作和伟大的计划。我正在使用Netbeans 6.9.1、S60 SDK和webstart版本的LCWUIT

我面临的第一个问题是无法预先验证Transitions3D.java文件,但这不是问题。我只是删除了那部分代码,从头开始重新编译库。因此,我创建了一个带有“helloworld”标签的简单表单,并尝试了资源编辑器的“createnetbeansproject”选项。我在test_MIDP(test是我项目的名称)上做了一个干净的构建,并尝试在模拟器上运行它。但是,我收到以下错误消息:

TRACE:,startApp引发了异常
java.lang.RuntimeException:*必须在类路径中的LWUIT之前包含平台端口**
在com.sun.lwiit.impl.ImplementationFactory.createImplementation(ImplementationFactory.java:67)上
位于com.sun.lwuit.Display.init(Display.java:400)
位于userclasses.MainMIDlet.startApp(MainMIDlet.java:15)
在javax.microedition.midlet.MIDletTunnelImpl.callStartApp()中,bci=1
在com.sun.midp.midlet.MIDletPeer.startApp()上,bci=7
在com.sun.midp.midlet.MIDletStateHandler.startSuite()上,bci=269
位于com.sun.midp.main.AbstractMidleSuiteLoader.StartSite(),bci=52
位于com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(),bci=8
位于com.sun.midp.main.AbstractMidleSuiteLoader.RunMidleSuite(),bci=161
在com.sun.midp.main.AppIsolateMidleSuiteLoader.main()上,bci=26
java.lang.RuntimeException:必须在类路径中的LWiit之前包含平台端口
在com.sun.lwiit.impl.ImplementationFactory.createImplementation(ImplementationFactory.java:67)上
位于com.sun.lwuit.Display.init(Display.java:400)
位于userclasses.MainMIDlet.startApp(MainMIDlet.java:15)
在javax.microedition.midlet.MIDletTunnelImpl.callStartApp()中,bci=1
在com.sun.midp.midlet.MIDletPeer.startApp()上,bci=7
在com.sun.midp.midlet.MIDletStateHandler.startSuite()上,bci=269
位于com.sun.midp.main.AbstractMidleSuiteLoader.StartSite(),bci=52
位于com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(),bci=8
位于com.sun.midp.main.AbstractMidleSuiteLoader.RunMidleSuite(),bci=161
在com.sun.midp.main.AppIsolateMidleSuiteLoader.main()上,bci=26
“必须在类路径中的LWIIT之前包含平台端口”

关于如何修复这个错误有什么想法吗?我尝试使用S60和JavaME SDK 3.0 emulator运行MIDlet,但收到了相同的错误


StackOverflow警告我,也有类似的问题,但我找不到任何与我的问题相关的问题。如果没有,请通知我。

我将回答我自己的帖子:

问题是,在我包含的UI jar中。LWUIT附带2套
UI.jar
。LWUIT\UI文件夹中的通用项目和LWUIT\Ports文件夹中的特定于平台的项目。通用项目将用作包含所有通用代码的“父”项目,但前提是您必须导入适用于您平台的.jar文件。如自述文件所述:

虽然这些项目将很容易编译,但它们对于任何目的都是无用的,因为它们不包括平台的绑定胶,要使用平台,需要在特定的端口目录下使用特定平台的适当项目


当我重新编译库以删除Transitions3D.java文件时,我重新编译(然后导入)了通用UI.jar。正确的做法是编译父项目(generic UI.jar),然后编译特定于端口的库(在我的例子中是LWUIT\ports\MIDP\UI.jar),然后将其导入到您的项目中,就完成了。

您尝试过其他模拟器吗?不,我没有,我没有安装任何其他的,我的项目是关于诺基亚手机的,但是我不认为它与模拟器有什么关系,JavaMESDK 3.0和S60中都有同样的错误,机会有多大?编辑也是一样。关于这个问题有什么一般性的想法吗?你使用的是什么版本的LWUIT?LWUIT网站上的webstart版本。不幸的是,它没有说任何地方的版本,但它应该是最后一个。使用最新的LWUIT和checkout