类格式错误:154>,在显示类中捕获异常



我正在运行一个已经在诺基亚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)

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

我不知道诺基亚 S60,但这通常发生在 CLDC 设备上,当部署编译的 Java 类文件而没有"预先验证"它们时。这是在嵌入式 JavaME 设备上运行它们所需的附加构建步骤。请参阅此堆栈溢出问题。

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

%YOUR_WTK_HOME%binpreverify.exe -classpath <your-classpath> -d <your-destination-dir> <your-source-directory>

相关内容

  • 没有找到相关文章

最新更新