web-dev-qa-db-ja.com

RuntimeException:アプリケーションをインスタンス化できません

アプリケーションを実行すると、logcatで次の例外が発生します。

 04-14 09:29:53.965: W/dalvikvm(1020): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
    04-14 09:29:53.985: E/AndroidRuntime(1020): FATAL EXCEPTION: main
    04-14 09:29:53.985: E/AndroidRuntime(1020): Java.lang.RuntimeException: Unable to instantiate application   Android.app.Application: Java.lang.NullPointerException
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.LoadedApk.makeApplication(LoadedApk.Java:482)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:3938)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.ActivityThread.access$1300(ActivityThread.Java:123)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1185)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.os.Handler.dispatchMessage(Handler.Java:99)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.os.Looper.loop(Looper.Java:137)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.ActivityThread.main(ActivityThread.Java:4424)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Java.lang.reflect.Method.invokeNative(Native Method)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Java.lang.reflect.Method.invoke(Method.Java:511)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:784)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:551)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at dalvik.system.NativeStart.main(Native Method)
    04-14 09:29:53.985: E/AndroidRuntime(1020): Caused by: Java.lang.NullPointerException
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.Java:362)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.LoadedApk.getClassLoader(LoadedApk.Java:305)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.LoadedApk.makeApplication(LoadedApk.Java:474)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     ... 11 more

注:エミュレーターからアプリをアンインストールして実行すると、この例外は発生しませんが、エミュレーターでインストールしたアプリケーションを再実行すると、これが発生します。助けてください。

96
user182944

これは、dalvikが.apkファイルを再インストールし、同じパッケージから以前に開いたアクティビティ/ビューを再利用またはリサイクルしようとしたときに、基になるフレームワークによって発生する詳細なエラーメッセージです(以前にインストールしたアプリをまだ閉じていない場合)。また、アプリとは何の関係もありません。また、エンドユーザーのデバイスに表示されるこの詳細なエラーメッセージによって、アプリがフリーズまたはクラッシュすることはほとんどありません。

このdalvikの詳細なエラーログはAndroid 4.0システムでのみ発生したようです。Android 3.2および2.3.3の実行環境で自分でテストしました。どちらにもメッセージは表示されません。同様の質問が here で以前に議論されており、誰かが Android Issues Tracker にバグレポートを記入しています。

現時点では、この詳細なエラーログについてあまり気にする必要はないと思います。Logcatでこの赤いエラーの前後にさらにログを見ると、完全なストーリーを見ることができ、以前に開いたアクティビティ/ビュー(死んだ状態としてマークされている)殺され、新しく再インストールされたものが最終的にポップされます。

194
yorkw

これは非常に古い質問であることに気づきましたが、これはとにかく便利かもしれません。私自身の開発でこのエラーを観察したとき、それは、例えば、終了する前にバックグラウンドスレッドをシャットダウンするなど、以前に実行していたアプリのインスタンスがきちんと閉じないことが原因であることがわかりました。

16
JulianSymes

アプリケーションクラス内でJSOUPを使用してインターネットに接続しようとすると、同じエラーが発生します。アプリケーションはエミュレータで実行されますが、実際のデバイスでは実行されないため、注意が必要でした。 JSOUPライブラリを間違って使用したことが判明しました。 新しいスレッドでページを読み込んでいます 問題を解決しました。

私が誰かを助けたことを願っています。

2
Yoda066

これが誰かを助けることを願っています。これをクリックして、エミュレータで実行中のアプリに移動します。

enter image description here

enter image description here

インストールしようとしているアプリを閉じて、再度実行します。アプリをアンインストール/再インストールしたり、プロジェクトをクリーンアップする必要はありません。

2

私にとっては、プロジェクトをきれいにするのに役立ちました。 Eclipseの場合:
-プロジェクト->クリーン
プロジェクトを制御してください->自動的にビルドがチェックされます
その後、gen-Folderが空の場合、res-folderに誤りがあります。多くの場合、res-folderの間違いは赤十字で示されません!幸運と挨拶

1
stefan96

(Module:app)build.gradleファイルでapplicationIdを別のものに変更し、デバイスでアプリを再度実行します。その後、変更を取り消してアプリを再度実行すると、すべてが機能します。 Android St​​udio 2.3.1およびここにある4つの異なるデバイス(5.0から7.0)で動作します。

0
Davi Caetano

別のマシンからビルドされたプロジェクトをインポートしたときに、これを経験しました。キャッシュを無効にして再起動するだけです

ファイル>キャッシュの無効化/再起動>無効化して再起動

0
Anish

この質問に答えます。 gradle cleangradle installDebugを使用すると問題なく動作します!

   AndroidRuntime  D  Shutting down VM
E  FATAL EXCEPTION: main
E  Process: tv.panda.live.broadcast, PID: 4685
E  Java.lang.RuntimeException: Unable to instantiate application tv.panda.live.broadcast.PandaApplication: Java.lang.ClassNotFoundException: Didn't find class "tv.panda.live.broadcast.PandaApplication" o
   n path: DexPathList[[Zip file "/data/app/tv.panda.live.broadcast-1/base.apk"],nativeLibraryDirectories=[/data/app/tv.panda.live.broadcast-1/lib/arm, /vendor/lib, /system/lib]]
E      at Android.app.LoadedApk.makeApplication(LoadedApk.Java:572)
E      at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4883)
E      at Android.app.ActivityThread.access$1500(ActivityThread.Java:178)
E      at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1573)
E      at Android.os.Handler.dispatchMessage(Handler.Java:111)
E      at Android.os.Looper.loop(Looper.Java:194)
E      at Android.app.ActivityThread.main(ActivityThread.Java:5691)
E      at Java.lang.reflect.Method.invoke(Native Method)
E      at Java.lang.reflect.Method.invoke(Method.Java:372)
E      at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:959)
E      at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:754)
E  Caused by: Java.lang.ClassNotFoundException: Didn't find class "tv.panda.live.broadcast.PandaApplication" on path: DexPathList[[Zip file "/data/app/tv.panda.live.broadcast-1/base.apk"],nativeLibraryDi
   rectories=[/data/app/tv.panda.live.broadcast-1/lib/arm, /vendor/lib, /system/lib]]
E      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:56)
E      at Java.lang.ClassLoader.loadClass(ClassLoader.Java:511)
E      at Java.lang.ClassLoader.loadClass(ClassLoader.Java:469)
E      at Android.app.Instrumentation.newApplication(Instrumentation.Java:988)
E      at Android.app.LoadedApk.makeApplication(LoadedApk.Java:567)
E      ... 10 more
E      Suppressed: Java.lang.ClassNotFoundException: tv.panda.live.broadcast.PandaApplication
E          at Java.lang.Class.classForName(Native Method)
E          at Java.lang.BootClassLoader.findClass(ClassLoader.Java:781)
E          at Java.lang.BootClassLoader.loadClass(ClassLoader.Java:841)
E          at Java.lang.ClassLoader.loadClass(ClassLoader.Java:504)
E          ... 13 more
E      Caused by: Java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
0
androidmalin

私の場合、logcatは最初のアクティビティが見つからないことを示していますが、Dexパスは異なり、「.../data/app/myapp」ではなく「.../data/app/myapp-1」でした。 。パッケージエクスプローラーウィンドウで、主なプロジェクト名「myapp」をクリックして、これを解決しました。次に、それを右クリックして、-> refactor-> rename ...プロジェクト名をmyapp-1に設定し、次に-> refactor-> rename ...に戻り、再び「myapp」に戻ります。それは働いた...日食のバグのいくつかのkinf?

0
ldt

私の場合、Android Mavenプロジェクトを新しいワークスペースにインポートした後にこのエラーが表示され、SRCフォルダーはビルドパスに自動的に追加されませんでした。

プロジェクト/ビルドパス/ビルドパスの設定/ソースを右クリックし、ソースが欠落していないか確認します。

0
Andrey Uglev

同じ問題が発生しました。アプリをアンインストールしてから再インストールすると、問題が解決しました。

0
swati

同じ問題が発生しました。プロジェクトのクリーニングはうまくいきました。

プロジェクトを選択して、[プロジェクト]-> [クリーン]に移動します。

0
cnuis2cool