Java me 诺基亚3310:MIDlet始终提供;Can';t编译文件";

Java me 诺基亚3310:MIDlet始终提供;Can';t编译文件";,java-me,nokia,midlet,midp-2.0,Java Me,Nokia,Midlet,Midp 2.0,在阅读了证明可以为新版本编写自定义应用程序的评论后,我正在尝试运行自己的应用程序 在阅读了大量关于MIDP、CLDC等的内容后,我安装了(在新的Ubuntu安装上,因为Oracle只支持MIDP或Windows),以及 首先,我找不到设备支持哪个版本的MIDP和CLDC的任何信息,所以我继续尝试了一些可能的排列,以下是我的结果: CLDC \ MIDP | 1.0 | 2.0 | 2.1 | 1.0 | * | * | X | 1.1 | * |

在阅读了证明可以为新版本编写自定义应用程序的评论后,我正在尝试运行自己的应用程序

在阅读了大量关于MIDP、CLDC等的内容后,我安装了(在新的Ubuntu安装上,因为Oracle只支持MIDP或Windows),以及

首先,我找不到设备支持哪个版本的MIDP和CLDC的任何信息,所以我继续尝试了一些可能的排列,以下是我的结果:

CLDC \ MIDP | 1.0 | 2.0 | 2.1 |
1.0         |  *  |  *  |  X  |
1.1         |  *  |  *  |  ?  |
1.8         |  X  |  X  |  ?  |
那些我从MIDP2.1开始就没有尝试过的手机不起作用,也没有什么可以获得的,
X
手机出现错误“无法安装[MIDlet name],因为它不适用于此手机”

因此,手机似乎支持MIDP 2.0配置文件和CLDC 1.1配置,但当我尝试安装我的应用程序(使用
*
的任何配置)时,它总是这样:

  • “[MIDlet name]不受信任。是否继续?”>确定(这是预期的)
  • “无法编译文件”(这是我遇到的问题)
  • 到目前为止我试过的(除了各种版本排列)
    • 最初,我尝试了一种非常基本的MIDlet子类型:
    public void startApp()
    {
    表单=新表单(“你好”);
    append(新的StringItem(“Hello”,“World!”);
    Display.getDisplay(this).setCurrent(form);
    }
    
    • 接下来,我尝试使用Eclipse插件提供的这些模板:
      • 飞溅MIDlet模板
      • Hello World Midlet模板
    • 选择运行时配置(始终选择
      DefaultColorPhone
      )时,我将版本配置文件从
      MIDP-2.1
      调整为
      MIDP-2.0
    • 已尝试其他配置
      MediaControlSkin
      QwertyDevice
    我总是通过单击“应用程序描述符”视图中的“打包>创建包”按钮来生成
    *.jar
    .jad
    文件

    在某种程度上,它开始尝试各种设置,我没有太多信心它会工作,阅读和冲洗重复。当寻找替代品时,整个过程变得相当令人沮丧,因为很多链接要么在不可靠的网站上,404,要么在旧的3310手机上

    太长,读不下去了 要为新诺基亚3310编译一个简单(未签名)的应用程序,需要哪些配置和构建步骤


    以下是imo应该使用的最简单失败示例的全部内容:

    $tree
    .
    ├── 应用程序描述符
    ├── 箱子
    │   └── 通用域名格式
    │       └── 栈溢出
    │           └── kvn
    │               └── 测试
    │                   └── SOExample.class
    ├── 构建属性
    ├── 部署
    │   └── DefaultColorPhoneM2.0
    │       ├── 索特斯贾德
    │       └── 罐
    ├── 物件
    └── src
    └── 通用域名格式
    └── 栈溢出
    └── kvn
    └── 测试
    └── SOExample.java
    13个目录,6个文件
    $cat应用程序\描述符
    MIDlet-1:SOExample,,com.stackoverflow.kvn.test.SOExample
    MIDlet Jar URL:SOTest.Jar
    MIDlet名称:SOTest MIDlet套房
    MIDlet供应商:MIDlet套件供应商
    MIDlet版本:1.0.0
    微调节配置:CLDC-1.1
    微环境概况:MIDP-2.0
    $cat build.properties
    #MTJ构建属性
    DefaultColorPhoneM2.0.includes=src/com/stackoverflow/kvn/test/SOExample.java\
    DefaultColorPhoneM2.0.0不包括=\
    $cat src/com/stackoverflow/kvn/test/SOExample.java
    包com.stackoverflow.kvn.test;
    导入javax.microedition.lcdui.*;
    导入javax.microedition.midlet.*;
    公共类SOExample扩展了MIDlet{
    私人形式;
    受保护的应用程序(布尔无条件)
    抛出MIDletStateChangeException{/*nop*/}
    受保护的void pauseApp(){/*nop*/}
    受保护的void startApp()引发MIDletStateChangeException{
    表格=新表格(“你好”);
    append(新的StringItem(“Hello”,“World!”);
    Display.getDisplay(this).setCurrent(form);
    }
    }
    

    设备的软件信息:型号:TA-1006;软件:15.0.0.17.00;操作系统版本:MOCOR_W17.44.3_发行版;固件号:sc7701_barphone

    NB:应用程序与仿真器一起工作,所以不是源代码有问题。@u__lou:我包括了整个项目结构和相关内容(省略了字节码的内容)代码。@卢先生:我还没有考虑过这个问题,但不幸的是,它没有起到作用:只是尝试用相同的代码将
    受保护的
    更改为
    公共的
    并删除
    抛出…
    ,但它给出了相同的错误“无法编译文件”:(感谢您的关注!Oracle搞砸了。SDK 3.4是最后一个处理MIDlet的,而v8.x处理Xlet。虽然您甚至不能使用v8.x编译MIDlet……但这太乱了。您远远不是第一个陷入这种境地的人。听起来很有希望,我期待着尝试一下!我的希望又来了:)