Blackberry:使用Library项目作为外部Jar时的验证错误

时间:2012-03-28 07:03:10

标签: blackberry jar verification

我在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并使用它有什么问题?需要什么类型的验证?

2 个答案:

答案 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。这是您应该在构建路径中导入的文件。