2012-04-14 9 views
92

Когда я запускаю мое приложение, каждый раз я получаю ниже исключение в моем LogCat:RuntimeException: Невозможно создать экземпляр приложения

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

Если ваш пакет является android.app.Application, попробуйте изменить имя пакета, вид выглядит подозрительным, выглядит как пакет System. –

+0

Также убедитесь, что приложение объявлено в манифесте. – dcow

+0

Разверните строку «Причиненный: java.lang.NullPointerException». Должна быть ссылка на строку в вашем приложении дальше по строке –

ответ

192

Это подробное сообщение об ошибке, поднятое базовой структурой, когда dalvik переустанавливает файл .apk и пытается повторно использовать или перерабатывать предыдущие открытые действия/представления из того же пакета (если вы еще не закрыли предыдущее установленное приложение). Это не имеет никакого отношения к вашему приложению, более того, маловероятно, что ваше приложение будет заморожено или разбито по причине этого подробного сообщения об ошибке на устройстве конечного пользователя.

Похоже, что этот подробный журнал ошибок dalvik произошел только в системе Android 4.0, я сам его протестировал в операционной среде Android 3.2 и 2.3.3, где вы не можете реплицировать, чтобы показать это сообщение ни на одном из них. Подобный вопрос обсуждался раньше: here, и кто-то заполнил сообщение об ошибке в Android Issues Tracker.

Я не думаю, что вы должны слишком сильно относиться к этому подробному журналу ошибок, если вы посмотрите больше журналов до и после этой красной ошибки в Logcat, вы можете увидеть полную историю и обнаружить, что предыдущая открытая активность/view (которые отмечены как состояние умершего), будут убиты, а вновь переустановленные будут всплывать в конечном счете.

+2

Привет, Нет мое приложение не является ни разбился, ни заморожен из-за этого исключения, Сво работает нормально даже после исключения. Я просто видел исключение в логарифме и не знал об этом, поэтому думал о том же. Спасибо за информацию, очень полезную. – user182944

+0

Спасибо, человек, который помог, имел отличное описание о нем – Triode

+2

Я получаю это в консоли разработчика производственного приложения. Кажется, что это происходит в основном с 4.2, но я видел и другую версию (4.1, 4.4). – Dustin

16

Я понимаю, что это очень старый вопрос, но это может быть полезно в любом случае. Я обнаружил, что когда я наблюдаю эту ошибку в своей собственной разработке, это связано с тем, что предыдущий экземпляр моего приложения не закрывается аккуратно, например, закрывая фоновые потоки до выхода.

+0

Да, ударившись о дом на моем телефоне, затем запуск этого снова удаляет эту ошибку и для меня. – Aggressor

+0

Делает смысл, но как приложение может аккуратно закрываться, когда оно открыто перед пользователем, а затем Android убивает его, чтобы обновить его? – Sam

+0

Предположительно Android вызывает onDestroy() в этом сценарии, нет? Надеюсь, что это так. – JulianSymes

1

Для меня это помогло очистить проект. В Eclipse:
- Project -> Clean
Пожалуйста управления, что Project -> Build Automatically Выдана
Если генераторной папка пуста после того, есть ошибка в Рез-папке. Часто ошибки в папке res не отображаются красным крестом! Удачи и приветствия

+0

Не помогло мне. Когда я использую 'adb' для обновления с одного из моих производственных приложений на другое, эта проблема возникает, поэтому она не кажется конкретной к IDE в моем случае. – Sam

0

В моем случае эта ошибка появляется после того, как я импортировал проект Android Maven в новое рабочее пространство, а папка SRC не была автоматически добавлена ​​для создания пути.

Щелкните правой кнопкой мыши по проекту/Путь сборки/Настроить путь сборки/Источник - проверьте, отсутствуют ли источники.

2

У меня была такая же ошибка, когда я пытался подключиться к Интернету с помощью JSOUP внутри моего класса приложений. Это было сложно, потому что приложение запускалось на эмуляторе, но не на самом устройстве. Оказалось, что я просто использовал библиотеку JSOUP неправильно. Loading page in new thread решил мою проблему.

Надеюсь, я помог кому-то.

0

У меня такая же проблема. Уборка проекта работала для меня.

Выберите проект перейти к Project -> Clean

+0

Не помогло мне. Когда я использую 'adb' для обновления от одного из моих производственных приложений к другому, эта проблема возникает, поэтому это не похоже на IDE в моем случае. – Sam

0

В моем случае LogCat показать мне, что coudn't найти начальную активность, но путь Dex был другим, это было».../данные/приложение/myapp-1 "вместо" .../data/app/myapp ". Я сделал это, нажав на имя проекта elcipse «myapp» в окне проводника пакета. Затем щелкните правой кнопкой мыши по нему, -> refactor-> rename ... Я установил имя проекта для myapp-1, а затем, -> refactor-> rename ... и обратно в "myapp". Тогда это сработало ... какой-то kinf ошибки в затмении?

2

Надеюсь, это поможет кому-то. Перейти к запущенным приложениям на вашем эмуляторе, нажав этот:

enter image description here

enter image description here

Закройте приложение, которое вы пытаетесь установить, а затем запустить его снова. Нет необходимости удалять/переустанавливать приложение или очищать проект.

0

У меня такая же проблема. Удаление моего приложения, а затем повторная установка, решила проблему.

0

Я испытал это, когда импортировал проект, который был построен с другой машины. Просто Аннулируйте кэши и перезапустить

Файл> Invalidate кэши/Restart> Invalidate и перезапустить

0

Я изменил ApplicationID на что-то другое на (Module: приложение) файл build.gradle, запустить приложение снова на моем устройстве. Затем я отменяю изменения и запускаю приложение снова, и все работает. Он работает на Android Studio 2.3.1 и 4 разных устройствах, которые у меня здесь, от 5.0 до 7.0.

0

Я отвечаю на этот вопрос. При использовании 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 
Смежные вопросы