我正在使用LWUIT作为我的j2me项目的GUI库。我使用LWUIT资源编辑器生成了一个netbeans项目。我有一个单独的项目,我在其中为我的j2me程序编写了额外的组件。
在那个单独的项目中,我有一个班级TextForm extends Form
,其中Form是标准的LWUIT表格。当我尝试做的时候:
TextForm a = new TextForm();
a.show();
一切都很好。但是当我这样做时:
Form a = new TextForm();
a.show();
我有编译时错误:
Error preverifying class userclasses.StateMachine
VERIFIER ERROR userclasses/StateMachine.onConnect()V:
Cannot find class client/lwuit/components/TextForm
(TextForm类包含在我的单独项目的client.lwuit.components
包中)。那么,有没有解决这个问题的方法呢?
UPD:
a.show()方法是一种标准的Form方法。它负责显示表格。这里没那么重要。
答案 0 :(得分:1)
对于任何关心的人:错误发生在项目的build-impl.xml文件中(它的位置是/nbproject/build-impl.xml)。它生成错误。错误在行
中<nb-preverify srcdir="${preverify.sources.dir}" destdir="${preverify.classes.dir}" classpath="${platform.bootclasspath}:${extra.classpath}" configuration="${platform.configuration}" platformhome="${platform.home}" platformtype="${platform.type}" commandline="${platform.preverifycommandline}"/>
查看此标记的名为classpath的属性:
classpath="${platform.bootclasspath}:${extra.classpath}"
为了告诉preverifyer您所包含的库的位置,请将此属性更改为以下格式:
classpath="${platform.bootclasspath}:${extra.classpath}:${libs.classpath}"
如果查看project.properties
文件(它与build-impl.xml位于同一目录中),您可以看到,libs.classpath
变量提供了所有项目库的路径,你包括。
P.S。:是的,看起来很奇怪,这会以这种方式影响多态性,但它解决了这个问题......