1

ここ 2 日間、インターネットを検索してきましたが、すべてを試したような気がします。解決策を見つけるのに役立つコード スニペットがあれば教えてください。

標準のログイン アクティビティを使用して Android アプリケーションを作成しました。doInBackground() メソッドでは、別の外部クラスから静的メソッドを呼び出します。このメソッドは送信ボタンがクリックされると呼び出されるため、実行時にエラーが発生します。クラスはファイルに含まれており、コンパイル エラーはありません。[送信] ボタンをタップまたはクリックするたびに、doInBackground() メソッドで参照する外部ファイルに使用され、適切に含まれている (外部 jar 内の) クラスを参照する java.lang.NoClassDefFoundError が返されます。

すべての外部ライブラリは「libs」フォルダーにあります。代わりに手動でビルド パスに追加し、[Android プライベート ライブラリ] エントリの横にあるチェックボックスではなく、[注文とエクスポート] タブでそれらの横にあるボックスをオンにしようとしました。「gen」ディレクトリを「src」ディレクトリの上に配置しようとしましたが、何も変更されませんでした。Eclipse を再起動し、プロジェクト全体を再インポートし、ビルド パス内の外部ライブラリの順序をいじり、プロジェクトのプロパティを修正し、プロジェクトを何度もクリーニングしても、何の役にも立ちませんでした。私はこれをチェックしました

http://javarevisited.blogspot.de/2011/06/noclassdeffounderror-exception-in.html

すべての解決策を試しましたが、どれもうまくいきませんでした。以前、ライブラリで同様の問題を報告しましたが、ビルド パスの設定を変更して Eclipse を再起動することで解決できました。しかし、これはもう私にはうまくいきません。誰かが別の解決策やアイデアを持っていることを願っています。何が悪いのかわかりません...

よろしくお願いします!

イーホー

編集:

まったく新しいプロジェクトを作成し、以前のファイルをこの新しいプロジェクトに追加したにもかかわらず、新しいプロジェクトでも同じ問題が発生しました。このエラーの原因はわかったと思います。外部ライブラリを追加したとき、追加したばかりの .jar から他の jar への依存関係がまだありました。それらも追加した後、コンパイラは、Java の JRE システム ライブラリ (rt.jar) にある java.rmi.Remote クラスが必要だと言いました。jre ライブラリ全体をプロジェクトに追加すると、コンパイラ エラーは消えましたが、実行時エラーは引き続き発生しました。さらに調査した結果、私の外部ライブラリはおそらく Android ランタイム環境と互換性がないことがわかりました。つまり、jar の .class-files には、Android 搭載デバイスの Dalvik 仮想マシンに必要な同等の .dex-representation がありません。 . 多くのJava jarの場合、

間違っている場合は訂正してください。ただし、この説明は私にはかなりもっともらしいように思えました。残念ながら、これが現在プログラムでデータベースにアクセスする唯一の方法であるためです。

4

1 に答える 1