2

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

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

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 之前包含平台端口”

有关如何解决此错误的任何想法?我尝试使用 S60 和 JavaME SDK 3.0 模拟器运行 MIDlet,但收到了同样的错误。

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

4

1 回答 1

4

我将回答我自己的帖子:

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

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

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

于 2011-04-06T04:31:01.183 回答