2010-08-02 19 views
2

我发展我的大学一个软件,我目前试图实施要求我从我的标准的Sun无线工具包平台的移动NFC功能编译(通过NetBeans实现)诺基亚平台(也通过NetBeans实现)。“无效的应用程序,删除?”只有当与诺基亚SDK

问题是,无论何时我在Nokia手机或模拟器中编译诺基亚平台实施代码并运行程序时,手机都会显示一个框,指出“无效应用程序删除?”。带有是/否的答案。这会停止应用程序的安装。奇怪的部分是,如果我使用Sun平台实现编译完全相同的代码,它在诺基亚手机上运行时没有任何问题。我已经使用两种不同的诺基亚SDK(40系列诺基亚6212 NFC SDK和40系列第5版SDK)进行了试用,结果相同。

什么是诺基亚SDK做不同?

回答

2

在使用Sun平台创建的项目与在诺基亚平台中创建的项目之间似乎存在某种差异。

尽管最初使用Sun平台创建的原始程序与诺基亚平台一起编译,导致该应用程序无效,但当我使用诺基亚平台从头开始创建新项目并将原始程序的源代码复制该计划奏效。两者之间的JAD /清单文件没有明显的区别。

+0

如果您的诺基亚平台是诺基亚SDK,那么Java版本和API可能有所不同。我最近注意到Nokia SDK允许使用向量,枚举等用法,这在J2ME中是不可能的,因为它基于Java 1.3。一个快速的测试是看看包含的罐子是否有任何差异。 – omermuhammed 2010-08-04 15:55:50

+0

的确,事实似乎确实如此,但你会认为sdk的设计目的是为相同的语言生成代码,以至于它们不会有这样的根本区别。 P.S. 你可以使用枚举(http://download-llnw.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/index.html)和向量(http://download-llnw.oracle .com/javame/config/cldc/ref-impl/midp2.0/jsr118/index.html)在j2me中,也许你正在考虑一个较旧的实现 – 2010-08-10 14:24:27

0

确保以下属性(键:值对)是在JAD文件,并在JAR文件清单文件:

  1. 的MIDlet-名称
  2. 的MIDlet-版本
  3. 的MIDlet -vendor
  4. 的MIDlet-JAR-URL
  5. 的MIDlet-JAR尺寸
+0

程序正在通过净豆编译所以无论JAD和清单会自动创建,我仔细检查了,这些东西都在那里,他们是。 – 2010-08-04 08:12:18

1

如果你复制源代码,你可能还没有复制“manifest.midlets”,即告诉“形式”创建该操作系统。你通常会在项目属性中找到它。

(例如在NetBeans IDE - 应用程序描述符, “MIDlet的” 标签 - 它不应该是空的)。

+0

不,它不会导致编译器错误 - 因为它是操作系统使用它。 – JasonDiplomat 2010-10-08 13:26:29