7

重複の可能性:
NoClassDefFoundError-EclipseとAndroid

この質問は、さまざまな状況で多くの質問を受けているようです。おそらく、それを見つけて修正するためのいくつかの戦略を設定することができますか?私は自分自身がおかしいので、私が貢献できるのはホラーストーリーと質問だけです、ごめんなさい...

これは、クラスがコンパイル時に表示されているが実行時には表示されていない場合にスローされるようです...これはどのように発生しますか?

私の場合、Androidプラットフォーム用にEclipseでGoogleAPIを使用するアプリを開発しています。gdata.jarsを含めるようにプロジェクトプロパティ/Javaビルドパス/ライブラリを構成しましたが、すべて問題ありません。エミュレーターで実行すると、強制終了し、logcatは単純な新しいContactsService( "myApp");にNoClassDefFoundErrorを表示します。新しいCalendarService( "myApp")も試しましたが、同じ結果になりました。

問題を回避するために、コンパイル時に静的にバインドすることは可能ですか、それとも望ましいですか?

とにかく、アドオンライブラリの動的バインディングはモバイル環境でどのように機能しますか?.apkにバインドする必要がありますか、それとも「インストール」する必要がありますか?...うーん。

アドバイスは大歓迎です。

4

4 に答える 4

9

これは、クラスがコンパイル時に表示されているが実行時には表示されていない場合にスローされるようです...これはどのように発生しますか?

ビルドクラスパスには、APKにパッケージ化されていないJARが含まれる場合があります。

問題を回避するために、コンパイル時に静的にバインドすることは可能ですか、それとも望ましいですか?

それは可能であり、望ましく、そして必要です。

Eclipseの外部では、必要なJARをlibs/プロジェクトに配置し、Antでコンパイルするだけで、完了です。

Eclipseの内部で、学生が成功して使用したパターンの1つは、必要なJARをlibs/プロジェクトに配置し、それらをJARとしてビルドパスに追加することです(注:外部JARではありません)。APKの一部としてパッケージ化されます。 。ただし、私は個人的にEclipseを使用していないため、Eclipseの使用経験は限られていることに注意してください。

于 2010-03-16T17:29:19.357 に答える
2

問題を抱えている人のために、私は私のアプリで同じエラーを抱えていました。それを解決するために私がしたことは、新しいプロジェクトを作成し、マニフェストファイルと一緒にリソースとソースフォルダーを新しいプロジェクトにコピーし(作成した新しいプロジェクト内のものを事前に削除しました)、出来上がりです。

于 2012-02-17T01:31:22.903 に答える
1

私がこれを入手したとき、問題は実際にはキューの奥深くにありました。Dalvikコンバーターは、参照されているライブラリの一部を変換できませんでしたが、それでもEclipseによってプロジェクトを起動できました。

Android SDKコンソールをチェックして、エラーが報告されているかどうかを確認します。

于 2011-03-29T09:37:25.963 に答える
1

私の場合、2つのアプリ間で共有される独自のライブラリ(MyLib)を使用しています。ライブラリに新しいクラスを追加したときに、アプリAが閉じられました。

アプリAを開いて作業したところ、Eclipseが新しいクラスを認識し、それを参照することができました。しかし、実行時にエラーが発生しました。

アプリAにインポートされたライブラリフォルダー(MyLib_srcなどの名前)は、ライブラリプロジェクト(MyLib)に加えられた変更を反映していないことが判明しました。

  • これを解決するために、アプリAを更新しました。変更が反映され、Androidでプロジェクトを正しくビルドできました。

このバージョンの問題への参照が見つからなかったので、このリストに追加しようと思いました。

于 2011-09-28T11:33:08.720 に答える