首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MIDP2.0版本问题:$method未为$type定义

MIDP2.0版本问题:$method未为$type定义
EN

Stack Overflow用户
提问于 2010-03-10 09:34:06
回答 4查看 1.8K关注 0票数 4

我编写了一个MIDlet,它做了几件“高级”的事情:从网络中获取图像,调整大小,在电话中保存它们,显示它们。

这一切都完美地工作在诺基亚S60第三版的FP1模拟器。这个设备支持MIDP2.0和CLDC1.1(也支持JSR75,我需要它来保存文件)。它也可以在诺基亚的E71 (物理设备)上工作。

然后,我尝试在其他几个模拟器上运行MIDlet。其中之一,JavaMESDK3.0中的DefaultCldcJtwiPhone2也声称支持MIDP2.0和CLDC1.1。它没有JSR75,这解释了为什么"FileConnection不能解析为类型“。

然而,这并不能解释为什么List.deleteAll()、String.equalsIgnoreCase(String)和其他几个未定义。

我得到的实际错误:

  • 未定义类型数学的ceil(double)方法
  • 未为类型列表定义方法deleteAll()
  • 类型字符串的方法equalsIgnoreCase( String )未定义
  • 对于可显示的类型,未定义方法getWidth()

当我查看MIDP2.0(即JSR118) API (http://java.sun.com/javame/reference/apis/jsr118/)时,我可以清楚地看到所有这些方法都存在,其中的“开始”标记要么是MIDP2.0,要么是CLDC1.1。

我的问题:为什么一个支持MIDP2.0的模拟器不能访问所有的MIDP2.0方法?或者,我做错了什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-10 09:46:50

听起来,您使用的是在CLDC1.1中定义的方法;您使用的模拟器只能支持CLDC1.0(这肯定可以解释为什么缺少equalsIgnoreCase()以及任何涉及doublefloat原语的方法)。请参阅完整的API 这里。有关1.0和1.1之间差异的列表,请参见这里

编辑:检查设备的CLDC版本的一些方法:

1)检查microedition.configuration系统属性(如描述的这里 )。

代码语言:javascript
复制
System.out.println("The CLDC version is:  " + System.getProperty("microedition.configuration"));

2)检查仅在1.1中支持的类的存在性。

代码语言:javascript
复制
try {
    Class.forName("java.lang.ref.WeakReference");
    System.out.println("It's CLDC 1.1");
} catch (ClassNotFoundException e) {
    System.out.println("It's CLDC 1.0");
}
票数 1
EN

Stack Overflow用户

发布于 2011-07-22 08:31:58

Eclipse同时引用cldc_1.0.jar和cldc_1.1.jar (以及midp_2.0.jar和midp_2.1.jar)。

修复它:转到窗口>首选项> Java >设备管理>您的设备>编辑.>库> cldc_1.0.jar >删除

您可以在这里找到更多详细信息:http://thompsonng.blogspot.com/2009/09/j2me-setting-eclipse-to-use-cldc-11.html

票数 1
EN

Stack Overflow用户

发布于 2010-03-10 11:10:28

即使在选择了像DefaultCldcJtwiPhone2一样支持CLDC-1.1的仿真器设备之后,仍然可以将其配置为模拟CLDC-1.0专用手机。

至少Netbeans上的项目属性是这样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2415778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档