错误:Application not authorized to access the restricted API

XSign 2008-08-02 04:50:45
程序有两个类文件SystemMainFrame为程序的主框架,也就是运行后显示的内容,部分内容如下


package src;


import javax.microedition.lcdui.Command;
…………
import src.QiangZhiXianForm;

public class SystemMainFrame extends MIDlet implements CommandListener{
…………
private QiangZhiXianForm qiangZhiXian;//改成private Form qiangZhiXian出现同样的错误

protected void startApp() throws MIDletStateChangeException {
if (mainScr == null) {
…………
mainScr.setCommandListener(this);
}
display.setCurrent(mainScr);

}

public void commandAction(Command c, Displayable d) {
if (d == mainScr) {
// Handle main sceen
if (c == cmdExit) {

} else if ((c == List.SELECT_COMMAND) || (c == cmdSelect)) {
switch (mainScr.getSelectedIndex()) {
case 0:
genQiangZhiXian(); //调用函数,完成界面的更新!调用这个函数报错!!
break;
case 1:

break;
case 2:

break;
case 3:

break;
default:

}
}
}
}

private Screen genQiangZhiXian()//调用这个函数报错!!
{
qiangZhiXian = new QiangZhiXianForm("交通事故责任强制保险");
display.setCurrent(qiangZhiXian);

return qiangZhiXian;
}
}


QiangZhiXianForm类为一个字功能的界面类,为了方便程序的维护,我想把它写在一个类中。以下是完整代码:


package src;

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.TextField;

public class QiangZhiXianForm extends Form {
private TextField txtFieldUsedYear;
private TextField txtFieldGl;
private TextField txtFieldSiteNum;
private TextField txtFieldZzl;

private Command cmdOk;
private Command cmdBack;


public QiangZhiXianForm(String title) {
super(title);

txtFieldUsedYear = new TextField("已使用年限","",3,TextField.NUMERIC);
txtFieldGl = new TextField("排气量/功率(C.C./KW)","",5,TextField.NUMERIC);
txtFieldSiteNum = new TextField("座位数(包括司机)","",3,TextField.NUMERIC);
txtFieldZzl = new TextField("核定载重量(吨)","",4,TextField.NUMERIC);

cmdOk = new Command("OK",Command.OK,1);
cmdBack = new Command("Back",Command.BACK,2);

this.append(txtFieldUsedYear);
this.append(txtFieldGl);
this.append(txtFieldSiteNum);
this.append(txtFieldZzl);

this.addCommand(cmdOk);
this.addCommand(cmdBack);

this.setCommandListener(new SystemMainFrame());
}

public QiangZhiXianForm(String arg0, Item[] arg1) {
super(arg0, arg1);
// TODO Auto-generated constructor stub
}

}


现在程序报错:
Running with storage root DefaultGrayPhone
Running with locale: Chinese_People's Republic of China.936
java.lang.SecurityException: Application not authorized to access the restricted API
at com.sun.midp.security.SecurityToken.checkIfPermissionAllowed(+40)
at com.sun.midp.security.SecurityToken.checkIfPermissionAllowed(+7)
at com.sun.midp.midletsuite.MIDletSuiteImpl.checkIfPermissionAllowed(+8)
at com.sun.midp.midlet.MIDletState.<init>(+83)
at javax.microedition.midlet.MIDletProxy.<init>(+5)
at javax.microedition.midlet.MIDlet.<init>(+13)
at src.SystemMainFrame.<init>(+4)
at src.QiangZhiXianForm.<init>(+163)
at src.SystemMainFrame.genQiangZhiXian(+10)
at src.SystemMainFrame.commandAction(+72)
at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(+282)
at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(+10)
at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68)
at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.handleVmEvent(+194)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+51)
Execution completed.
3423739 bytecodes executed
472 thread switches
1647 classes in the system (including system classes)
17960 dynamic objects allocated (545276 bytes)
3 garbage collections (463880 bytes collected)

貌似是调用了受限制的API函数,请问如何解决这个问题?
...全文
421 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

13,097

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧