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
Примечание: когда я удаляю приложение из эмулятора и запускаю его, тогда я не получаю это исключение, но когда я заново запускаю установленное приложение в эмуляторе, я получаю это. Пожалуйста, помогите
Ответы
Ответ 1
Это подробное сообщение об ошибке, созданное базовой структурой, когда dalvik переустанавливает файл .apk и пытается повторно использовать или перерабатывать предыдущие открытые действия/представления из того же пакета (если вы еще не закрыли предыдущее установленное приложение), Это не имеет ничего общего с вашим приложением, более того, маловероятно, что ваше приложение будет зависать или разбиваться из-за этого подробного сообщения об ошибке на устройстве конечного пользователя.
Кажется, что этот подробный журнал ошибок dalvik произошел только в системе Android 4.0, я сам протестировал его на операционной среде Android 3.2 и 2.3.3, где вы не можете реплицировать, чтобы это сообщение не было показано ни на одном из них. Аналогичный вопрос обсуждался ранее в здесь, и кто-то заполнил отчет об ошибке в Android Tracker.
Я не думаю, что вы должны слишком сильно относиться к этому подробному журналу ошибок, если вы посмотрите больше журналов до и после этой красной ошибки в Logcat, вы можете увидеть полную историю и найти, что предыдущая открытая активность/(которые отмечены как состояние умершего), их убивают, а вновь переустановленные становятся доступными в конечном счете.
Ответ 2
Я понимаю, что это очень старый вопрос, но это может быть полезно в любом случае. Я обнаружил, что когда я наблюдаю эту ошибку в своей собственной разработке, это связано с тем, что ранее запущенный экземпляр моего приложения не закрывался аккуратно, например, путем закрытия фоновых потоков до выхода.
Ответ 3
У меня была такая же ошибка, когда я пытался подключиться к Интернету с помощью JSOUP внутри моего класса приложения.
Это было сложно, потому что приложение запускалось на эмуляторе, но не на самом устройстве.
Оказалось, что я неправильно использовал библиотеку JSOUP. Загрузка страницы в новый поток решила мою проблему.
Надеюсь, я помог кому-то.
Ответ 4
Надеюсь, это поможет кому-то.
Перейдите в запущенные приложения на эмуляторе, нажав на эту кнопку:
![введите описание изображения здесь]()
![введите описание изображения здесь]()
Закройте приложение, которое вы пытаетесь установить, и снова запустите его. Нет необходимости удалять/переустанавливать приложение или очищать проект.
Ответ 5
Для меня это помогло очистить проект.
В Eclipse:
- Проект → Чистота
Пожалуйста, контролируйте, что Project → Build Automatically CHECKED
Если после этого gen-Folder пуст, в папке res произошла ошибка. Часто ошибки в папке res не отображаются красным крестом!
Удачи и приветствия
Ответ 6
В моем случае эта ошибка появляется после того, как я импортировал проект Android Maven в новое рабочее пространство, а папка SRC не была автоматически добавлена в путь сборки.
Щелкните правой кнопкой мыши по проекту/Путь сборки/Настроить путь сборки/Источник - проверьте, отсутствуют ли источники.
Ответ 7
У меня такая же проблема. Уборка проекта работала для меня.
Выберите проект, перейдите в Project → Clean
Ответ 8
В моем случае logcat покажет мне, что он не может найти начальную активность, но путь Dex был другим, это было ".../data/app/myapp-1" вместо ".../data/app/MyApp".
Я сделал это, нажав на имя проекта elcipse "myapp" в окне проводника пакета. Затем щелкните правой кнопкой мыши по нему, → refactor- > rename...
Я установил имя проекта в myapp-1, а затем, → refactor- > rename... и снова вернусь к "myapp".
Тогда это сработало... некоторые kinf ошибки в затмении?
Ответ 9
У меня такая же проблема. Удаление моего приложения, а затем переустановка, решила проблему.
Ответ 10
Я испытал это, когда импортировал проект, который был построен с другой машины.
Просто заблокируйте кеши и перезапустите
Файл > Invalidate Caches/Restart > Invalidate and restart
Ответ 11
Я изменил приложение на другой файл (Module: app) build.gradle, снова запустил приложение на своем устройстве. Затем я отменяю изменения и запускаю приложение снова, и все работает. Он работает на Android Studio 2.3.1 и 4 разных устройствах, которые у меня здесь, от 5.0 до 7.0.
Ответ 12
Я отвечаю на этот вопрос.
При использовании gradle clean
, gradle 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