0

lwuit と Codenameone を使用して J2ME アプリケーションを開発しており、多くの時間をかけて作成しました。作成した後、Nokia、Samsung、LG など、MIDP をサポートしているデバイスに展開したいと考えました。それで、Nokia のデバイスはエラーなしで動作し、Samsung や他の企業のデバイスには理由がわからない問題があることがわかりました。

そこで、このアプリケーションを作成する別の方法を試しました。Codenameone ウィザードを空白のテーマと手動テンプレートで使用し、それをデプロイしようとしました。そうですね。私は成功し、Samsung デバイスでも動作しました。その後、このアプリケーションの「テーマ」にいくつかのフォームを追加して、シミュレーターで実行しようとしました。メインクラスのコードを次のように変更しました。

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 のビジュアル モードで 1 つのアプリケーションを作成しました。どうすれば、Samsung や Samsung などの他のデバイスで実行できますか (オペレーティング システムなしで、Java または MIDP のみをサポートします)。Codenameone でビジュアル モード アプリケーションを手動モードに変更するにはどうすればよいですか?

前もって感謝します。

4

2 に答える 2

1

あなたはライフサイクルクラス内から派生しUIBuilderていて、まだ表示されていないものにファインダーメソッドを使用しようとしています。コードがシミュレーターで機能する方法は絶対にありません。また、ウィザードによって生成されたコードではありません。

于 2012-11-28T13:49:14.913 に答える
0

ありがとうシャイ。作成のために、私はハードコーディングを行い、すべてのフォームを 1 つずつ作成しました。

基本フォームから派生する基本フォームを実装しcom.codenameone.ui.Form、すべてのフォームは基本フォームから派生します。

于 2012-12-08T09:25:03.777 に答える