-1

Hey Hi Friends 私は 1 つの j2me アプリを作成しました。エミュレーターでは完全に動作しますが、モバイルでは、java.lang.nosuchfielderror:No such field HEADERS.[[Ljava/lang/String;. なぜこれがモバイルで起こっているのか、エミュレーターでうまく動作するようなエラーが表示されます......このエラーを削除するのを手伝ってください......

public String connectPhoneName() throws Exception{
    String url = "http://122.170.122.186/Magic/getPhonetype.jsp";
    String phoneType;
        if ((conn = connectHttp.connect(url, HEADERS)) != null) {
            if ((in = connectHttp.getDataInputStream(conn)) != null) {
                byte[] data = connectHttp.readDATA(in, 100);
                phoneType = new String(data);
                System.out.println("DATA : " + phoneType);
            } else {
                throw new Exception("ERROR WHILE OPENING INPUTSTREAM");
            }
        } else {
            throw new Exception("COULD NOT ESTABLISH CONNECTION TO THE SERVER");
        }
    return phoneType;

}

このコードでは、HEADERS を使用しました。

4

1 に答える 1

1

あなたのアプリは、モバイル デバイスが実装する Java ME のプロファイルに存在しないライブラリ クラスの(私が推測する)static finalまたはフィールドを使用しているようです。final

しかし、そのフィールドがどこから来たのかわかりません。おそらく、「HEADER」を識別子として使用するためにコードベースを検索する必要があります...


HEADER フィールドがコードベース (MagiDEF インターフェイス) で適切に宣言されていて、表示されたコードがそのインターフェイスの HEADER を使用している場合、ビルドまたは展開プロセスに何か問題があるはずです。具体的には、コード (上記) がコンパイルされたバージョンの MagiDEF を展開していません。たぶん、JAR ファイルに何かの古いバージョンがありますか?

基本的に、このエラーは、アプリを構成する一部のクラス/インターフェース間にバイナリ非互換性があることを示しています。

于 2011-03-24T12:02:37.747 に答える