1. ホーム
  2. android

AndroidのJavaライブラリのコードでNoClassDefFoundErrorが発生する。

2023-09-22 06:53:16

質問

私のユーザーの間で、あるエラーが頻繁に発生しています。アプリは起動中にクラッシュします。MainActivity がロードされるはずのとき、VM はどうやらそのクラスを見つけることができません。理由がわかりません。アプリのアーキテクチャは、無料版とプロ版の両方が使用している共通のプロジェクトがあります。それが関連するかどうかはわかりません。以下のスタックトレースを参照してください。何か考えがありますか?

java.lang.NoClassDefFoundError: com.android.common.MainActivity
at com.mycompany.myapp.Splash.onCreate(Splash.java:23)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
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:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.android.common.MainActivity in loader     dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/data/app/com.android.pro-1.apk]

編集します。 リチャードさん、下のコメントありがとうございます。今、私は com.android.Splash を他のものに変更しました。どうせ本当のクラス名ではないのですから。私が悪いのですが...!

どのように解決するのですか?

私も同じ問題が発生しましたが、以下の方法で解決しました。

  1. プロジェクトの "プロパティ" に移動します。
  2. Java Build Path"]を選択します。
  3. 注文とエクスポート」タブを選択します。
  4. 選択したプロジェクトの "src" と "gen" のパスと依存関係がここに表示されるはずです。
  5. 表示される順序は、最初に "src"、次に "gen"のパスが表示されました。
  6. 私はそれらを切り替えて、"gen" フォルダが "src" の前にビルドされるようにしました。

gen - プロジェクト内の自動化されたコード (依存関係や参照先から)

src - プロジェクト内のソースコード

Eclipseを再起動する必要はありませんでした。ただ動き始めただけです。

正直、Android Tools > Fix Project Properties" は試したことがないのですが、もしかしたら同じことをやっているのかもしれません。エラーメッセージを見た後、ビルドパスに何か問題があるのではと思い、上記の操作を行っただけです。


編集


その後、それは十分ではありませんでした、私は再びエラーが発生しました。そこで、そのビューにリストされているすべての依存関係を確認しました。これで、再び動作するようになりました。ここまでは順調です。もしまた失敗したら、これを更新し続けます。

ご参考まで : 前回の試行で、"Android Tools > Fix Project Properties" を試しましたが、うまくいきませんでした。