2

最近LWUITを使い始めました。素晴らしい仕事と素晴らしいプログラム。Netbeans 6.9.1、S60 SDK、および LCWUIT の webstart バージョンを使用しています。

最初に直面した問題は、Transitions3D.java ファイルを事前検証できなかったことですが、それは問題ではありませんでした。コードのその部分を削除し、ライブラリを最初から再コンパイルしました。そこで、「Hello World」ラベルの付いた単純なフォームを作成し、リソース エディタの「Netbeans プロジェクトの作成」オプションを試してみました。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 の前にプラットフォーム ポートを含める必要があります」

このエラーを修正する方法についてのアイデアはありますか? S60 と JavaME SDK 3.0 エミュレータの両方で MIDlet を実行しようとしましたが、同じエラーが発生しました。

StackOverflow は、同様の質問があることを警告しましたが、私の問題に関連するものは何も見つかりませんでした。そうでない場合はお知らせください。

4

1 に答える 1

4

私は自分の投稿に答えます:

問題は、UI jar に含めていたことです。LWUIT には の 2 つの「セット」が付属していUI.jarます。LWUIT\UI フォルダにある一般的なものと、LWUIT\Ports フォルダにあるプラットフォーム固有のものです。一般的なものは、すべての共通コードを含む「親」プロジェクトとして使用されていますが、.jar ファイルをインポートする必要がある場合これはあなたのプラットフォーム用です。readme ファイルには次のように記載されています。

これらのプロジェクトは簡単にコンパイルできますが、プラットフォームをバインドする接着剤が含まれていないため、どのような目的にも役に立ちません。プラットフォームを使用するには、特定のプラットフォームの特定のポート ディレクトリの下にある適切なプロジェクトを使用する必要があります。

Transitions3D.java ファイルを削除するためにライブラリを再コンパイルしているときに、汎用の UI.jar を再コンパイル (およびインポート) しました。正しいことは、親プロジェクト(汎用UI.jar)をコンパイルしてから、ポート固有のライブラリ(私の場合はLWUIT\ports\MIDP\UI.jar)をコンパイルしてから、プロジェクトにインポートすることです。これで完了です.

于 2011-04-06T04:31:01.183 に答える