我在Eclipse的Blackberry Java Plug-in中创建了两个Blackberry项目,即 MyProjectApp (设置为应用程序项目)和 MyProjectLib (设置为Library项目)。现在我创建了一个简单的MainScreen类,如下所示:
public class SampleScreen extends MainScreen {
public SampleScreen (){
RichTextField topbar = new RichTextField("hello world");
add(topbar);
}
}
现在我将MyProjectLib导出为Jar文件,并在MyProjectApp中将其添加为外部Jar。现在我想使用以下方法触发SampleScreen:
public class MyProjectMain extends UiApplication{
public static void main(String[] args) {
MyProjectMain theApp = new MyProjectMain();
theApp.enterEventDispatcher();
}
public LangHostMain(){
// Push a screen onto the UI stack for rendering.
pushScreen(new SampleScreen());
}
}
出现以下错误:
模块“MyProjectApp”存在验证错误。 启动MyProjectApp时出错:模块“MyProjectApp”出现验证错误。
但是如果我将SampleScreen类移动到MyProjectApp,它运行正常。导出Jar并使用它有什么问题?需要什么类型的验证?
答案 0 :(得分:5)
有一个工具preverify.exe;它确保字节码与BlackBerry平台兼容。
BlackBerry rapc编译器在将应用程序编译为cod文件时使用java 1.3字节码格式。
如果您使用不同的字节码格式创建了jar文件,例如通过使用javac 7.0版进行编译,则此jar文件将无法通过验证。
尝试使用密钥编译jar文件,使其与VM 1.3字节码兼容,
使用-target 1.3
键值组合为java编译器构建jar文件。
答案 1 :(得分:3)
简而言之,在黑莓手机中使用罐子是一团糟。
你的罐子应该预先验证。我曾经遇到过很多问题,试图用eclipse插件做这个,我通常用命令行来做。在JDE路径中,通常位于:
C:\Program files\Research In Motion\BlackBerry JDE x.x.x\bin
有一个名为preverify
的程序。预验证jar后,将在指定的输出目录中创建另一个预先验证的jar。这是您应该在构建路径中导入的文件。