| CNJM首页 | 业界新闻 | 手机软件 | 终端应用 | 资源下载 | 开发文档 | EclipseME | CNJM论坛 | 加入收藏 | 设为首页 | ||
|
|||
|
常见问题
预校验与部署目录发生错误如果工程路径与源码目录以及输出目录相同时,预校验与部署文件夹会发生错误。 Eclispe的java工具默认把预校验产生的类也放到classpath中,但是它们的路径和 包的结构不匹配,于是就发生了如下图所示的错误。
当这种现象发生时,你必须定义一系列的源码排除样式(Source Exclusion Patterns) 把预校验和部署的文件从classpath中移除。你可以照着下图在工程首选项中设置:
在EclipseME 0.4.0 版本以后, 当工程目录与项目目录相同时,这些排除设置会被自动的加进来。 不能恢复工作区状态很多因素会造成这个问题,不过最有可能是因为平台组件视图被整合到了J2ME首选项中去。 这是一个次要的错误,在每个透视图中只会发生一次。参见migration 来得到详细信息。 调试的时候报告"KVM Not Ready"WTK的调试器似乎是 Sun 的 MIDP 以及 K Debug Proxy 工具的联合体, 他们被编译到了同一个可执行文件。 通常会有两个不同的工具通过socket连接交谈。 当对话中的一半等待另一半的时候,似乎容易给出这个警告。 这个警告会出现在控制台上,但是好像不影响模拟器的调试。 为什么我的MIDLet套件中会有未定义平台(Unspecified Platform)?在早期版本中,经常容易把与MIDlet套件相关联的平台定义信息搞丢。 这会引起很多问题。 如果很不幸它被搞丢了的话,EclipseME就用未定义平台来代替。
这个工程不包含任何库与信息,你的工程也因而不会被编译。 你可以在J2ME Properties 中为你的工程关联有效的平台定义。 为什么Eclipse报告说"build path is incomplete"?好多原因会造成这个问题,最大的可能是工程的设备平台定义有问题。 参见为什么我的MIDLet套件中会有未定义平台(Unspecified Platform)? 的回答。 为什么通过命令行签署不能得到类文件This error occurs because Eclipse doesn't currently request class prepare events for all classes. 参见 EclipseME bug 904266 以及 Eclipse Bug 50531 来获得进一步信息。 为什么打包的时候报告"Could not find jar tool executable"在混淆的过程中,混淆工具产生的JAR文件需要被再次预校验。 此时,预处理工具会从环境变量中寻找并调用jar工具的可执行文件。 EclipseME一般会在JRE安装目录下面去寻找。 如果发生这个问题了,肯定是因为EclipseME在已经安装的JRE(java的子类)中找到了 至少一个JDK。这种情况下,在Windows下,Eclipse会默认识别JRE而不是JDK。 为了解决这个问题,将已安装JRE的路径指定为JDK的路径就可以了。 比如在Windows上,可以指定类似的一个目录:c:\j2sdk1.4.2 。 当我调试我的MIDlet的时候,什么也没发生检查你是不是对调试设定做了必要的配置。 参见 改变Eclipse的调试设定来得到详细信息。 当我试图通过OTA模式调试我的MIDlet的时候, 得到如下错误:"No midlets defined in JAD File."你没有使用应用描述文件(JAD)编辑器的Midlets 面板上定义MIDlet 可以使用 Java应用描述文件(JAD)编辑器 为MIDlet来添加入口。 当你手动创建你的MIDlet或者 创建新的MIDlet中的 添加到应用描述文件选项没有被选中时, 会出现这个问题。 我怎么在生成JAR文件的时候把图片等资源包含进来?在EclipseME工程中,作为构建的一部分,源文件夹中的的所有java文件会 被自动编译,其他的文件会被拷贝到构建文件夹。这是标准的Eclipse行为。 可以这样指定一个新的源文件夹:
注意: 作者认为即使没有单独的资源文件的时候,将输出 与输入文件分离也会比将他们合在一起好。不过Eclipse菜鸟们(the Eclipse folks) 肯定不这么认为,因为这不是默认选项。
Eclipse中有一个设置可以控制在新创建一个工程的时候是否为源文件和输出文件使用不同的
目录。你可以按照一下的步骤来设置:选择Windows / Preferences
打开Eclipse Preferences 对话框。
展开左侧的java项目,然后选择Build Path ,
在左侧点Folders后会看到这样的画面:
记住,这个设置只有在新建工程的时候才有用。如果你想重新组织一个已经存在的工程的话, 只能安装前文提到的方法手工调整了。 我怎么与其他的Eclipse工程共享类文件?对于标准的J2SE应用,一个单独的应用通常是由好多的JAR文件组成的。不过在J2ME 中不是这样。按照J2ME平台的要求,所有的类都是MIDlet套件中的一部分,发布到真机的时候, 它们最终被打到一个JAR包中。 这并不意味着你 不能 mean 在不同的EclipseME工程之间共享代码。EclipseME时可以处理存在依赖关系的工程的。 做为部署过程的一部分,EclipseME把把所需的类从"子"工程里面抽取出来放到你的 MIDlet套件中。 为了达到这个目的,你需要按照以下的步骤来作:
为什么“资源目录”(resource directory)功能没用?"资源目录"只有在创建工程的时候有用。当工程已经创建完了,在修改这个属性 是没有用的。 另外,只有你在Eclipse中设置了分别创建源文件目录和输出目录时才有用。 参见安装知道中安装之前一节关于如何配置Eclipse的说明。 为什么真机说我的应用是非法的?以下是一些可能的原因:
当然,以上的列表并不完全,不过已经涵盖了问题的大多数情况。 为什么JAR或者依赖项目中的类在发布文件中没有被包含进来?从EclipseME 0.9.4 版本开始,为了在部署时包含进依赖的JAR库,你需要在工程属性的JAVA构建路径选项 的定制与导出(Order and Exports)页面中,手工选择要导出的项目。 类似的,在部署时要添加进来的依赖工程中的资源也要如此配置。 为你的MIDlet套件添加JAR 一节有关于这个问题的详细讨论。 为什么模拟器在调试的时候崩溃了?如果你的MIDlet套件在运行的时候没问题,但是调试的时候却崩溃了, 可能是你的调试器选项有问题。 确保“发生未捕获的异常时暂挂执行”选项没有被选中,就好像 安装指导中描述的那样。 |
||
|
Copyright © 2005, http://www.eclipseme.org.
All rights reserved.
本中文版由中国Java手机网<www.cnjm.net>翻译
|
|||