日期:2014-05-20  浏览次数:20736 次

J2ME 程序可以编译但调试的时候闪一下就自动关闭高手过来指点一下
错误如下:

Running   with   storage   root   DefaultColorPhone
java.lang.SecurityException:   untrusted   domain   is   not   configured
at   com.sun.midp.security.Permissions.forDomain(+98)
at   com.sun.midp.dev.DevMIDletSuiteImpl.create(+15)
at   com.sun.midp.dev.DevMIDletSuiteImpl.create(+33)
at   com.sun.midp.main.Main.runLocalClass(+20)
at   com.sun.midp.main.Main.main(+116)
Execution   completed.
8424   bytecodes   executed
0   thread   switches
483   classes   in   the   system   (including   system   classes)
168   dynamic   objects   allocated   (9576   bytes)
1   garbage   collections  

程序为JBuilder   2005 WTK为   自带的2.1

------解决方案--------------------
Jad 信息不对,没有制定MIDlet-1
------解决方案--------------------
呵呵,给我分吧。google了两个答案,我用第一个解决了;
一.试了一下还是没有解决,盖因我并没有调试失败过,所以suite.utf里是没有记录的,随后自己试了下在run--》midlet-》executable里将over the air改为midle:hello,随后调试通过。^_^b,原因可能是指定的入口文件名未确认,所以模拟器找不到吧,汗一下。
二.
解决J2ME中Error installing suite (39): The JAD matches a version of a suite already installed的问题
论坛上查到的:
方法1:原因是运行程序时采取了直接关闭模拟器的方法造成了模拟器临时文件没有被删除。
解决方法

删除C:\WTK22\appdb\DefaultColorPhone下的临时文件(安装目录和模拟器名称根据自己的情况)

在程序中添加退出按钮,下面仅供参考了

//Command exitCommand = new Command( "Exit ", Command.EXIT, 0);
//public void commandAction(Command c, Displayable s) {
if(c.getCommandType() == Command.EXIT) {
destroyApp(true);
notifyDestroyed();

运行程序

点Exit退出,以后就没有Error installing suite (39): The JAD matches a version of a suite already installed错误了。

方法2:也可以运行WTK2.2中的“OTA Provisioning”[C:\WTK22\bin\emulatorw.exe -Xjam],它的手机模拟器画面上有一个“应用程序”的菜单,你选择进入,就可以看到你的那个应用,然后你可以选择“删除”,这样就删除了。
eclipse中直接关闭模拟器,是不会这样的。

------解决方案--------------------
以前我用NetBeans时有过类似的问题,不知道能不能适用你这个问题。
当时也是一闪,模拟器就变没了。代码肯定没问题。
可能是路径中有中文名字吧。
当时我windows的登录用户名起的是中文名。
因为NetBeans默认安装目录是C:\Documents and Settings\你的用户名\.netbeans
所以无形中,就包含了中文路径。
后来我改成英文名字就好了。