0

我还在 BlackBerry 支持论坛上的“ NoClassDefFoundError while preverify the jar files in BlackBerry ”主题下问过这个问题

我在我的 BlackBerry Project 中添加一个库文件(jar 文件)并尝试运行它。但它给了我以下错误:错误!:在标签 77 处缺少堆栈映射。所以我尝试找出问题并找到这个链接:Preverify Link

所以我尝试使用预验证器来解决这个问题。当我使用 BlackBerry eclipse 插件时,我尝试过这种方式:

  1. 复制我的eclipse 6.0插件的bin文件夹中的jar文件(eclipse-SDK-3.5.2-win32\eclipse\plugins\net.rim.ejde.componentpack6.0.0_6.0.0.29\components\bin)
  2. 在命令行中执行以下命令:

     preverify -classpath "<path to 6.0.0.29 SDK>\net_rim_api.jar" "ArcotOTP-Lib-Java-Test-2.0.0.jar"
    

但运行此行后,我收到以下错误:

预验证类 Mypackage.API$1 时出错
java/lang/NoClassDefFoundError: Mypackage/Test
4

1 回答 1

2

BlackBerry 设备在 Java-ME 平台上运行,因此您无法使用现代 Java 功能。如今,典型的 Java jar 文件使用不向后兼容 Java-ME 平台的新特性。有些项目确实不妨碍向后兼容,比如Bouncy Castle。但这很少见。

这个问题在 BlackBerry 论坛上重复出现,在 BlackBerry 论坛上也得到了回答,我将在此处记录:

西蒙海恩:

它是一个 j2me 库吗?

阿林丹慕克吉:

不,它是 java 库..所有类基本上都是 java 类。我也用于 android 的同一个库,它对我来说运行良好..

西蒙海恩:

黑莓使用 J2ME 作为基础,Android 使用 J2SE。除非您重新编译它(并解决由于缺少反射、列表等而导致的所有错误),否则您无法在 BlackBerry 上使用 Android 库

于 2013-01-26T20:59:23.367 回答