0

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

所以我尝试了不同的方式来创建这个应用程序。我使用了带有空白主题和手动模板的 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 的可视模式下创建了一个应用程序。如何在三星和三星等其他设备上运行它(没有操作系统,只支持 java 或 MIDP)?如何在 Codenameone 中将我的可视模式应用程序更改为手动模式?

提前致谢。

4

2 回答 2

1

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

于 2012-11-28T13:49:14.913 回答
0

谢谢夏。为了创建,我进行了硬编码并一一创建了所有表单。

我实现了派生自基本表单的基本表单,com.codenameone.ui.Form并且每个表单都派生自基本表单。

于 2012-12-08T09:25:03.777 回答