我正在使用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方法。您的代码绝对不可能在模拟器中工作,也不是向导生成的代码。