我正在使用lwuit和Codenameone开发J2ME应用程序,并在很长时间内创建了它。创建它之后,我想将其部署在支持MIDP的某些设备中,例如诺基亚,三星,LG等。因此,我发现诺基亚设备可以正常运行,而三星和其他公司的设备存在一些我无法理解的问题?

因此,我尝试了不同的方式来创建此应用程序。我使用带有空白主题和手动模板的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中将Visual Mode应用程序更改为Manual Mode?

提前致谢。

最佳答案

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

10-02 08:08