AndroidのJavaライブラリのコードでNoClassDefFoundErrorが発生する。
質問
私のユーザーの間で、あるエラーが頻繁に発生しています。アプリは起動中にクラッシュします。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
を他のものに変更しました。どうせ本当のクラス名ではないのですから。私が悪いのですが...!
どのように解決するのですか?
私も同じ問題が発生しましたが、以下の方法で解決しました。
- プロジェクトの "プロパティ" に移動します。
- Java Build Path"]を選択します。
- 注文とエクスポート」タブを選択します。
- 選択したプロジェクトの "src" と "gen" のパスと依存関係がここに表示されるはずです。
- 表示される順序は、最初に "src"、次に "gen"のパスが表示されました。
- 私はそれらを切り替えて、"gen" フォルダが "src" の前にビルドされるようにしました。
gen
- プロジェクト内の自動化されたコード (依存関係や参照先から)
src
- プロジェクト内のソースコード
Eclipseを再起動する必要はありませんでした。ただ動き始めただけです。
正直、Android Tools > Fix Project Properties" は試したことがないのですが、もしかしたら同じことをやっているのかもしれません。エラーメッセージを見た後、ビルドパスに何か問題があるのではと思い、上記の操作を行っただけです。
編集
その後、それは十分ではありませんでした、私は再びエラーが発生しました。そこで、そのビューにリストされているすべての依存関係を確認しました。これで、再び動作するようになりました。ここまでは順調です。もしまた失敗したら、これを更新し続けます。
ご参考まで : 前回の試行で、"Android Tools > Fix Project Properties" を試しましたが、うまくいきませんでした。
関連
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み] アプリケーションのインスタンス化ができない com.android.tools.fd.runtime.BootstrapApplication ?Android
-
[解決済み] Android - タイトルバーに戻るボタンが表示される
-
[解決済み] データベースでリサイクルビューを使用する
-
[解決済み] Gradleでビルドタイプを使用し、ContentProviderを使用する同じアプリを1つのデバイスで実行する。
-
[解決済み] アンドロイドのdatepickerダイアログで最大の日付を設定するには?
-
[解決済み] ProjectScopeServices に Factory タイプのサービスはありません。
-
[解決済み] ViewPager2でスワイプを無効にするには?
-
[解決済み] 文字列リソースにHTML?
-
[解決済み] kotlin.TypeCastException: NULL を非 NULL 型にキャストできない com.midsizemango.databasekotlin.Note
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 設定ページに移動せずに位置情報サービスをオンにする
-
[解決済み] Android Webview - キャッシュを完全に削除する
-
[解決済み] getApplication()、getApplicationContext()、getBaseContext()、someClass.thisの違いと使い分け。
-
[解決済み] Studio 3.4 をアップデートしたら、引数の leftShift() メソッドが見つかりませんでした。
-
[解決済み] 通知をクリックした後にアプリケーションを開く
-
[解決済み] Android - Snackbar vs Toast - 使い方と違い。
-
[解決済み] APKが署名済みかデバッグビルドかを確認するには?
-
[解決済み] proguard hell - 参照されているクラスが見つかりません。
-
[解決済み] BottomNavigationViewを新しいNavControllerで使用する際に、フラグメントを生かす方法はありますか?
-
[解決済み] ブルートゥースアプリケーションのテストにアンドロイドエミュレータを使用するには?