0

我有一个名为 Numbers 的 MIDlet 项目,我决定将其重命名为 Digits。我决定从头开始创建一个全新的项目,而不是简单地重命名它,这样我就可以拥有新目录、包名、.jad/.jar 名称等。一切顺利,我将 .java 文件复制到 /src和资源文件到 /res 并成功重新编译。我对这两个项目都使用了 Eclipse Helios 和 Nokia 的 Series 40 5th Edition SDK,Feature Pack 1。

现在,由于某种奇怪的原因,当 MIDlet 在模拟器中启动时,它会抛出 NullPointerException,但不是在启动时立即抛出,而是在启动屏幕之后(这是一个游戏)。我根本没有接触过代码,所以我排除了代码中出现异常的可能性,因为当项目被称为 Numbers 时它工作得很好。经过一个小时的反复试验,我发现了一件奇怪的事情:如果我打开 Application Descriptor 并将MIDlet 名称属性从“Digits”更改为“Numbers”(旧项目名称),一切运行正常,没有抛出异常。

我在所有项目文件中进行了文本搜索,并且“数字”一词仅出现在应用程序描述符和 .jad 文件中,并且仅在我更改了 MIDlet 名称属性之后,否则找不到该字符串(没有类名,没有变量,没有其他属性,代码和项目中都没有字符串“数字”)。该参考来自哪里?Eclipse 或 Series 40 模拟器中的错误?是什么赋予了?

4

1 回答 1

0

发现,又经过半个小时的调查。Series 40 SDK 目录中有一个文件夹,它显然缓存了它运行的 MIDlet,并且还保留了相同 MIDlet 的旧版本。我清理了整个目录,现在项目在MIDlet NameMIDlet Vendor中的新值启动得很好。要清理的目录是:
Nokia\Devices\S40_5th_Edition_SDK_Feature_Pack_1\bin\Storage\6500500\C\DirectLoaded\

于 2010-07-30T21:52:58.863 回答