ClassFormatError:154>,在Display类中捕获异常

时间:2013-09-23 08:18:17

标签: java java-me midlet nokia-s40

我正在运行已部署的midlet应用程序&在诺基亚S60 sdk上运行。我想让我的应用程序在每个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)

即使我试图改变警戒级别,但仍会出现异常。

1 个答案:

答案 0 :(得分:0)

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

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

%YOUR_WTK_HOME%\bin\preverify.exe -classpath <your-classpath> -d <your-destination-dir> <your-source-directory>