web-dev-qa-db-ja.com

Android外部.jarファイルのEclipseNoClassDefFoundError

奇妙なエラーに遭遇しました。特に、外部ライブラリを使用するAndroidプロジェクトがあります:

  • Android-support-v4.jar(Android 1.6)のフラグメントサポート用)
  • GoogleAdMobAdsSdk-4.3.1.jar(広告用)

プラグインのいくつかの側面を更新するまで(あまり注意を払っていなかったため、詳細を思い出せません)、その後、上記の.jarファイル(またはそのサブクラスのうち、私が定義したものであっても)、Java.lang.NoClassDefFoundErrorが発生します。何度も調べても答えが見つからなかったので、本当に困っています。

この問題は私のIDEの設定方法に関連していて、実際のコードとはほとんど関係がないので、どうしても必要な場合を除いて投稿しません。

15
Dan

これを読む必要があります- Androidプロジェクト の依存関係を扱う。

このリンクも役立ちます- ClassDefNotFoundError with ADT 17

基本的に、libsというフォルダーを作成し、その中にすべてのjarファイルを配置します。最近の更新により、残りは自動的に処理されます。パスを編集する必要はもうありません。

35
adneal

AndroidはこれまでJava1.7をサポートしていません。コンプライアンスレベル1.7でビルドされたjarは、Androidアプリケーションでは使用できません。jarファイルをエクスポートする前に、コンプライアンスレベル5.0または6.0でJavaプロジェクトを再ビルドしてください。

私はグーグル経由でこの投稿を見つけました、そして上記の答えは私の問題を解決しませんでした。私の言うことが他の人の役に立つことを願っています。

7
miaowhehe

ADT 22にアップグレードした後にNoClassDefFoundErrorが表示された場合は、Eclipseでこれを試してください。

  • プロジェクトプロパティJavaビルドパス注文とエクスポートタブ。
  • Androidプライベートライブラリオプションをチェックします。

Android Private Libraries option

7
Pang

また、多くの依存関係を持つr17に更新した他の人への警告。ビルドパスに別の参照プロジェクトがありましたが、インターネットでこのr17の問題に関するすべての指示に従った後でも、それは機能しませんでした。

1時間後、参照されたプロジェクトがメインプロジェクトよりも古いバージョンの外部Jarを使用していることがわかりました。メインプロジェクトをコンパイルしようとすると、このjarバージョンの違いのためにEclipseが諦め、コンソールに警告メッセージが表示されることに気づきませんでした。

解決策は、新しいバージョンの外部jarファイルを参照されているプロジェクトのlibsディレクトリにコピーすることでした。

うわー-そのような生産性キラー.....

1
Shane Menchions

私がそれを解決した方法は次のとおりでした:プロジェクトを右クリックしてビルドパスを選択します。表示される選択肢から[ビルドパスの構成]を選択します。その後、ライブラリがライブラリフォルダにあるかどうかを確認し、[注文とエクスポート]タブを選択して、そこにあるすべてのjarファイルを選択します。次に、[OK]を選択して、プロジェクトを実行します。

0
user1575100

Android SDK、r17にアップデートしたため、今日もこのエラーが発生しました。 @anealが指摘しているリンクで説明されていないのは、外部ランタイムライブラリ(インポートされたユーザーライブラリではなく、独自の見出しでインポートされたライブラリなど)を処理する方法です。

この問題を解決する最も簡単な方法は、ビルドパスのビルド順序を変更することです。プロジェクトを右クリックして、プロパティを選択するだけです。ここから、Javaビルドパスを選択します。ディスプレイの上部で、タブorder and exportを選択し、GoogleAdMobAdsSdk-4.3.1.jar上に移動します- Android X(xを使用しているバージョンに置き換えます)。次に、プロジェクトをクリーンアップして実行します。あなたは行ってもいいはずです!

0
Phil

MavenでEclipseを使用している場合IDE(m2e) "Java Build Path"、[Order and Export]の順に移動し、最後に[MavenDependencies]項目をチェックして下部にプルダウンします。同じワークスペース内のプロジェクト参照でも同じことを行う必要があります。新しいコンピューターでプロジェクトをセットアップするたびに発生します。

0
s_bighead