2012-11-28 14 views
0

我正在用lwuit和Codenameone开发J2ME应用程序并在很多时间创建它。在我创建它之后,我想将它部署在诸如诺基亚,三星,LG等一些支持MIDP的设备中。所以我觉得诺基亚设备运行没有错误,三星和其他公司设备有一些问题,我不明白为什么?!lwuit向导和部署

所以我尝试了不同的方式来创建这个应用程序。我使用了带有空白主题和手动模板的Codenameone向导,然后尝试部署它。那好吧。我获得了成功,它也在三星设备中运行。 之后,我尝试在这个应用中添加一些表单到“主题”,并在模拟器中运行它。我改变了我的主类中的一些代码,如下所示:

public class Main extends UIBuilder { 

private Form current; 

public void init(Object context) { 
    try{ 
     Resources theme = Resources.openLayered("/theme"); 
     UIManager.getInstance().setThemeProps(theme.getTheme(theme.getThemeResourceNames()[0])); 
    }catch(IOException e){ 
     e.printStackTrace(); 
    } 
} 

public void start() { 
    if(current != null){ 
     current.show(); 
     return; 
    } 
Form hi = findMain();//new Form("Hi World"); 
//hi.addComponent(new Label("Hi World")); 
hi.show(); 
} 

public void stop() { 
    current = Display.getInstance().getCurrent(); 
} 

public void destroy() { 
} 

public com.codename1.ui.Form findMain() { 
    return (com.codename1.ui.Form)findByName("Main", Display.getInstance().getCurrent()); 
}} 

当我运行它时出现错误。

所以这是我的问题: 我在Codenameone的Visual模式下创建了一个应用程序。 我如何在三星和其他一些设备如三星(没有操作系统,只是支持java或MIDP)中运行它? 如何在Codenameone中将我的可视模式应用程序更改为手动模式?

在此先感谢。

回答

1

您在生命周期类中从UIBuilder派生出来,并试图在尚未显示的东西上使用finder方法。你的代码绝对不可能在模拟器中工作,它不是由向导生成的代码。

+0

非常感谢谢谢。 – Ahmad

0

谢谢谢。为了创建,我做了硬编码并逐个创建所有表单。

我实施的基地从com.codenameone.ui.Form派生的表格和每个表格从基地窗体派生。