java.lang.NoClassDefFoundError: クラス com.facebook.flipper.android.EventBase で失敗しました


アナヨ デバッグ 1

バグ



Android Studio ビルドから Android ビルド パッケージ (APK) を生成すると、正常にビルドされます.ただし、生成された APK を実際のデバイスまたは Android Studio に接続されたデバイスで実行すると、起動時にクラッシュし、次のエラーが返されます.

getWifiLinkLayerStats_1_3_Internal(l.973) failed {.code = ERROR_NOT_SUPPORTED, .description = }




/? E/studio.deploy: Could not get package user id: run-as: unknown package: com....




/? E/studio.deploy: Could not find apks for this package: com....




/? E/Finsky: [2] VerifyPerSourceInstallationConsentInstallTask.d(2): Package name null is not an installed package




/? E/installd: Couldn't opendir /data/app/vmdl1184715882.tmp: No such file or directory




/? E/installd: Failed to delete /data/app/vmdl1184715882.tmp: No such file or directory




/? E/ssioncontrolle: Not starting debugger since process cannot load the jdwp agent.




java.lang.NoClassDefFoundError: <clinit> failed for class com.facebook.flipper.android.EventBase; see exception in other thread


私はそれらのそれぞれを理解しようとして、すべてを読みました.しかし、これらのエラーから際立っていて、ある種の明確さを持っているのは、最後のエラーです.

java.lang.NoClassDefFoundError: <clinit> failed for class com.facebook.flipper.android.EventBase; see exception in other thread


Flipper を正当化するのが非常に難しくなってきているので、私は少し懐疑的でした.デバッグ ツールがクラッシュして開発プロセスをブロックするべきではありません.

どうやって解決したか



試行錯誤を繰り返した結果、うまくいく解決策にたどり着くことができました.この特定のエラーは、ビルドを生成しているときではなく、生成された APK を実行しようとしたときに発生します.そして、Android ビルド プロセスがどのように機能するかを調べました.コンパイラはソース コードを、Android デバイスで実行されるバイト コードを含む DEX (名前は何でも) ファイルに変換します.したがって、これは、コンパイル中に古いソース コードと新しいソース コードが混在している可能性があることを意味します (完全なコンパイラなどはないため、これは可能です).または、問題がない場合は、何か問題があるに違いありません.コンパイルされたファイルで.

このような問題を解決する最善の方法は何ですか?他の方法と同様に、ビルドを削除して、新しいビルドとして新たに開始します.

これは私がやったことであり、うまくいきました.

これが私がやったこと、私が取ったステップです:
  • 削除された android ビルド ファイル.このファイルは次の場所にあります.
    Android>アプリ内のアプリはビルドフォルダーを削除します
  • 次に、gradlew をクリーニングしました.

  • cd android &&./gradlew clean
    


  • 次にアプリケーションを再構築しました
  • 次に、APK
  • を実行しました

    出来上がり!上記の問題をすべて解決しました.同様のエラーまたは同じエラーに直面した場合、これが役に立ち、時間を節約できることを願っています.

    お役に立ったら、この投稿に「いいね!」をしてください.


    私の名前は Anayo Oleru です.バックエンド開発 (NodeJS & ExpressJS) を専門としていますが、Web フロントエンド (ReactJS) とモバイル (React-native) の経験があります.そして、私はこれらの分野でのオファーにオープンです.

    Twitter で私をフォローするか、[email protected] にメールを送信してください.

    乾杯して気をつけて.