0

NumbersというMIDletプロジェクトがあり、名前をDigitsに変更することにしました。単に名前を変更するのではなく、新しいプロジェクトを最初から作成して、新しいディレクトリ、パッケージ名、.jad / .jar名などを作成できるようにすることにしました。すべてうまくいったので、.javaファイルを/srcにコピーしました。およびリソースファイルを/resに追加し、正常に再コンパイルしました。両方のプロジェクトで、EclipseHeliosとNokiaのSeries40 5th Edition SDK、FeaturePack1を使用しました。

さて、MIDletがエミュレーターで起動すると、奇妙な理由でNullPointerExceptionがスローされますが、起動直後ではなく、スプラッシュ画面の後にスローされます(これはゲームです)。私はコードにまったく触れていないので、プロジェクトがNumbersと呼ばれたときに問題なく機能したため、コードの例外の可能性を除外します。1時間の試行錯誤の末、奇妙なことに気づきました。アプリケーション記述子を開き、MIDlet名のプロパティを「Digits」から「Numbers」(古いプロジェクト名)に変更すると、すべてが完全に実行され、例外はスローされません。

すべてのプロジェクトファイルでテキスト検索を実行しましたが、「Numbers」という単語はアプリケーション記述子と.jadファイルにのみ表示され、MIDlet nameプロパティを変更した後にのみ表示されます。変更しないと、その文字列が見つかりません(クラス名なし、コードにもプロジェクトにも、変数やその他のプロパティはありません。文字列は「Numbers」です)。その参照はどこから来ていますか?EclipseまたはSeries40エミュレーターのバグ?何が得られますか?

4

1 に答える 1

0

さらに30分の調査の結果、見つかりました。Series 40 SDKディレクトリには、実行しているMIDletをキャッシュしているように見えるフォルダがあり、同じMIDletの古いバージョンもそこに保持されています。ディレクトリ全体をクリーンアップしたところ、プロジェクトはMIDletNameMIDletVendorの新しい値で問題なく開始されました。クリーンアップするディレクトリは次のとおり
です。Nokia\Devices\ S40_5th_Edition_SDK_Feature_Pack_1 \ bin \ Storage \ 6500500 \ C \ DirectLoaded \

于 2010-07-30T21:52:58.863 に答える