2
decodeThread = new DecodeThread(activity, decodeFormats, characterSet,
    new ViewfinderResultPointCallback(activity.getViewfinderView()));

上記のコードでは、以下の例外が発生しています。

01-24 01:33:02.078: E/AndroidRuntime(708): java.lang.NoClassDefFoundError: com.main.onlinecart.ViewfinderResultPointCallback

このクラスViewfinderResultPointCallbackは、呼び出し元のクラスと同じパッケージに含まれています。同じパッケージから使用されている他のクラスでエラーが発生しません。ここで考えられる問題は何ですか?クラスパスに関連するものはありますか?クラスパス変数をどこでクロスチェックできますか?

Eclipse(mac os x上)を使用しており、実行構成からプロジェクトを実行しています。

このクラスは、同じパッケージには含まれていないが、プロジェクトのビルドパスに追加されたjarに存在するViewfinderResultPointCallback別のクラスを実装します。ResultPointCallbackそして、ログに1つの例外が表示されます。

01-24 01:33:01.968: I/dalvikvm(708): Failed resolving com/main/onlinecart/ViewfinderResultPointCallback; interface 472 'Lcom/google/zxing/ResultPointCallback;' 
01-24 01:33:01.968: W/dalvikvm(708): Link of class 'Lcom/main/onlinecart/ViewfinderResultPointCallback;' failed

しかし、同じjarから、エラーをスローしていない他の多くのクラスがあります。

4

3 に答える 3

0

ほとんどの場合、java.lang.NoClassDefFoundErrorは実際の問題ではありません。その前に別の例外があるはずです。メッセージ(ViewfinderResultPointCallback)でクラスの静的初期化中に発生する例外を探す必要があります。このクラスにアクセスするとNoClassDefFoundがトリガーされますが、これはクラスがロードされていないことを意味するだけです。

于 2013-01-23T20:19:23.980 に答える
0

NoClassDefFoundErrorと混同しないでくださいClassNotFoundException。問題のクラスがインターフェイスを実装し、2 つのいずれかが新しいバージョンで提供されている場合 (それらが一致しなくなった場合) にも、最初のエラーが発生する可能性があります。詳細については、 http://javarevisited.blogspot.ch/2011/06/noclassdeffounderror-exception-in.htmlを参照してください。

于 2013-01-23T20:31:37.477 に答える
-1

NoClassDefFoundError は、クラスが jar からのインターフェイスの 1 つに依存しているためです。プロジェクトの libs ディレクトリに jar を追加すると、エラーは解決しました。これは、私が android プロジェクトに取り組んでいるため必要であり、.apk ファイルが作成されると、実行時に使用するために libs フォルダーから jar が追加されます。

于 2013-01-23T21:17:22.103 に答える