web-dev-qa-db-ja.com

Android Java.lang.NoClassDefFoundError

EclipseにAndroidプロジェクトがありますIDEが動作していました。いくつかのインポートとテストの後、エラーが表示されます:Java.lang.NoClassDefFoundError

私のプロジェクトには、2つのパッケージがあります。メインと、いくつかのクラスを持つ2番目のパッケージです。

メインアクティビティクラスの2番目のパッケージクラスからオブジェクトをインスタンス化しようとすると、このエラーが発生します。

Logcatは次のとおりです。

FATAL EXCEPTION: main
Java.lang.NoClassDefFoundError: com.neurospeech.wsclient.MDPIforEditorialBoard
at milos.mdpi.Journals.<init>(Journals.Java:41)
at Java.lang.Class.newInstanceImpl(Native Method)
at Java.lang.Class.newInstance(Class.Java:1409)
at Android.app.Instrumentation.newActivity(Instrumentation.Java:1040)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:1777)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:1893)
at Android.app.ActivityThread.access$1500(ActivityThread.Java:135)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1054)
at Android.os.Handler.dispatchMessage(Handler.Java:99)
at Android.os.Looper.loop(Looper.Java:150)
at Android.app.ActivityThread.main(ActivityThread.Java:4389)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:507)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:849)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:607)
at dalvik.system.NativeStart.main(Native Method)

私の問題の解決策を見つけました:

解決策はここにあります: http://Android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

55
Miloš

Eclipse Androidプラグイン(adt r17)を最近更新しましたか?次に、次のリンクが役立ちます。

adt-17でclassdefnotfounderrorを修正する方法

更新:質問が発生してから1年が経過しました。リンクを維持します。2013年でさえ、一部の人々が問題を解決するのに役立つようだからです。しかし、あなたが何をしているかに注意してください、以下のEricsのコメントを参照してください。現在のADTバージョンは22です。最新バージョンを使用することをお勧めします。

55
Minsky

この順序でビルドパスを編集します。これでうまくいきました。

/gen/srcの前にあることを確認してください

enter image description here

27
ASP

ここでエクスポートするメインプロジェクトのプライベートライブラリを追加するだけで問題を修正しました。

Project Properties->Java Build Path->Order And Export

そして、Android Private Librariesがチェックされていることを確認してください。

スクリーンショット:

enter image description here

google-play-services_lib.jarおよびgoogle-play-services.jarがチェックされていることを確認してください。プロジェクトをクリーンアップして再実行すると、classNotfound例外はなくなります。

17
ernazm

1.6ではなくjdk 1.7でコンパイルされたjarを含めようとすると、このエラーが発生することもあります。

私の場合、ADTの代わりにSDKが提供するAntスクリプトを使用してアプリをパッケージ化しようとすることでこれを理解しましたが、ADTには表示されないこれらのエラーに気付きました。

  [dex] Pre-Dexing libjingle_peerconnection.jar -> libjingle_peerconnection-2f82c9bf868a6c58eaf2c3b2fe6a09f3.jar
   [dx]
   [dx] trouble processing:
   [dx] bad class file magic (cafebabe) or version (0033.0000)
   [dx] ...while parsing org/webrtc/StatsReport$Value.class
   [dx] ...while processing org/webrtc/StatsReport$Value.class

JDK 1.6でjarを再コンパイルし、エラーを修正しました。

1
Val Blant

他のAndroidライブラリを含む古いプロジェクトを開くと、この問題に何度か遭遇しました。私に役立つのは:

Androidを注文とエクスポートタブの一番上に移動し、選択を解除します。

はい、これは本当に違いを生みます。 Android St​​udioのADTを廃止する時が来たのかもしれません。

1
multidynamic

Project -> Properties -> Java Build Path -> Order & ExportおよびConfirm Android Private Librariesに移動して、プロジェクトおよびアプリケーションで使用している他のすべてのライブラリプロジェクトをチェックします。

1
IntelliJ Amiya

Imaage

プロジェクトのプロパティから注文してエクスポートし、エクスポートに必要なjarが含まれていることを確認してください、これは私のためにそれをしました

1
Haroon Dilshad

Java Build Pathを確認した後、マニフェストファイルにコードの行を追加します。

<meta-data
            Android:name="com.google.Android.gms.version"
            Android:value="@integer/google_play_services_version" />
0
Faakhir