我正在运行已部署的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)
即使我试图改变警戒级别,但仍会出现异常。
答案 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>