-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 finalfinal

但我无法弄清楚该字段的来源。也许您应该搜索您的代码库以使用“HEADER”作为标识符......


如果在您的代码库(您的 MagiDEF 接口)中正确声明了 HEADER 字段,并且您显示的代码使用该接口中的 HEADER,那么您的构建或部署过程一定有问题。具体来说,您没有部署您的代码(上面)已经编译的 MagiDEF 版本。也许你在一些 JAR 文件中有旧版本的东西?

基本上,该错误表明构成应用程序的某些类/接口之间存在二进制不兼容。

于 2011-03-24T12:02:37.747 回答