开发者

JavaME NullPointerException when changing MIDlet Name or Vendor property (Eclipse + Series 40 emulator)

I had a MIDlet project called Numbers th开发者_JS百科at I decided to rename to Digits. Instead of simply renaming it, I decided to create a brand new project from scratch, so that I can have new directory, package name, .jad/.jar names, etc. Everything went fine, I copied the .java files to /src and resource files to /res and recompiled successfully. I used Eclipse Helios and Nokia's Series 40 5th Edition SDK, Feature Pack 1, for both projects.

Now, for some weird reason when the MIDlet starts in the emulator, it throws a NullPointerException, but not immediately on startup, but after a splash screen (it's a game). I haven't touched the code at all, so I rule out the possibility of an exception in the code, since it worked just fine when the project was called Numbers. After an hour of trial and error, I found a weird thing: if I open up the Application Descriptor and change the MIDlet name property from "Digits" to "Numbers" (old project name), everything runs perfectly and no exception is thrown.

I did a text search in all project files and the word "Numbers" only appears in the Application Descriptor and the .jad file, and only after I change the MIDlet name property, otherwise that string is nowhere to be found (no class names, no variables, no other properties, neither in the code nor in the project have a string "Numbers"). Where is that reference coming from? A bug in Eclipse or Series 40 emulator? What gives?


Found, after another half an hour of investigation. There's a folder in the Series 40 SDK directory that apparently caches the MIDlets it runs, and keeps older versions of the same MIDlet there too. I cleaned the entire directory and now the project starts just fine with new values in MIDlet Name and MIDlet Vendor. The directory to clean is:
Nokia\Devices\S40_5th_Edition_SDK_Feature_Pack_1\bin\Storage\6500500\C\DirectLoaded\

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜