0

また、BlackBerry サポート フォーラムのスレッド「 NoClassDefFoundError while preverify the jar files in BlackBerry」でこの質問をしました。

BlackBerry プロジェクトにライブラリ ファイル (jar ファイル) を追加して実行しようとしています。しかし、それは私に以下のエラーを与えています: Error!: Missing stack map at label 77 . だから私は問題を見つけて、このリンクを見つけようとします: Preverify Link

そこで、preverifier を使用してこの問題を修正しようとしました。BlackBerry Eclipse プラグインを使用しているので、次の方法で試しました。

  1. Eclipse 6.0 プラグイン (eclipse-SDK-3.5.2-win32\eclipse\plugins\net.rim.ejde.componentpack6.0.0_6.0.0.29\components\bin) の bin フォルダーに jar ファイルをコピーします。
  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機能を使用することはできません。最近の典型的なJavajarファイルは、Java-MEプラットフォームとの下位互換性がない新しい機能を使用しています。Bouncy Castleのように、下位互換性を保つために邪魔にならないプロジェクトもあります。しかし、それはまれです。

この質問は、BlackBerryフォーラムで複製されましたが、BlackBerryフォーラムでも回答されました。ここでキャプチャします。

simon_hain:

そしてそれはj2meライブラリですか?

アリンダム・ムケルジー:

いいえ、Javaライブラリです。すべてのクラスは基本的にJavaクラスです。私がアンドロイドにも使用しているのと同じライブラリで、それは私からうまく機能しています。

simon_hain:

BlackBerryはJ2MEをベースとして使用し、AndroidはJ2SEを使用します。再コンパイルしない限り、BlackBerryでAndroidライブラリを使用することはできません(そして、リフレクションやリストなどの欠落によるすべてのエラーを解決します)

于 2013-01-26T20:59:23.367 に答える