1

我正在运行已在诺基亚 S60 sdk 上部署和运行的 midlet 应用程序。我想让我的应用程序在每个 java 和 symbian 设备上运行。我尝试在 Java_ME_platform_SDK_3.4 上运行应用程序,但是当我尝试将屏幕从登录切换到主页时出现代码错误

HomeForm homeForm=new HomeForm(objLoginMidlet, objCommonBean);
    Display.getDisplay(objLoginMidlet).setCurrent(homeForm);

家庭表格中的代码如下 -

   class HomeForm extends Form 
{
   public HomeForm(LoginMidlet objLoginMidlet,CommonBean objCommonBean)
    {
        this.objLoginMidlet=objLoginMidlet;
        this.objCommonBean=objCommonBean;
        setTimer();
        initHomeForm();
    }
}

我的 MIDP 设置为 2.1。即使我将其更改为 2.0 但仍然出现如下异常

警告* * *不得将不受信任的用户类放在系统类路径上 * **

 TRACE: <at java.lang.Error: ClassFormatError: 154>, Exception caught in Display class
java.lang.Error: ClassFormatError: 154
 - java.lang.Class.invoke_verify(), bci=0
 - java.lang.Class.initialize(), bci=100
 - ezypoint.forms.LoginForm.register(LoginForm.java:202)
 - ezypoint.forms.LoginForm.commandAction(LoginForm.java:91)

即使我尝试更改编译级别,但仍然出现异常。

4

1 回答 1

0

我不知道诺基亚 S60,但这通常发生在 CLDC 设备上,当编译的 Java 类文件在没有“预先验证”的情况下被部署时。这是在嵌入式 JavaME 设备上运行它们所需的额外构建步骤。请参阅此 StackOverflow 问题

如果你有一个成熟的开发环境,这通常是自动设置的(也许你需要选择正确的目标设备)。但是,如果您尝试自己编译 Java 文件,然后在您的设备上运行它们,则会崩溃。在这种情况下,您需要使用您的类文件调用 %YOUR_WTK_HOME%\bin\preverify.exe(并且可能添加到您的 ANT 脚本或类似文件中):

%YOUR_WTK_HOME%\bin\preverify.exe -classpath <your-classpath> -d <your-destination-dir> <your-source-directory>
于 2014-09-19T11:34:16.410 回答