Android: невозможно создать экземпляр приложения - PullRequest
19 голосов
/ 02 мая 2011

Я переименовал свой пакет, и теперь я получаю странную ошибку:

Unable to instantiate application
app.MyApplication: java.lang.ClassNotFoundException: 
app.MyApplication in loaderdalvik.system.PathClassLoader

Класс MyApplication находится в Application/app.Манифест гласит:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  package="Application">
<application 
    android:label="AGG"
    android:name="app.MyApplication"...

Я попытался перезагрузить, чистая сборка.Разве не работает ни на эмуляторе, ни на реальном устройстве.

Что происходит на Земле?

Ответы [ 9 ]

25 голосов
/ 02 мая 2011

Предположим, что базовый пакет ваших проектов действительно Application, как вы указали в manifest.

Если ваш класс MyApplication находится внутри этого пакета (объявление пакета класса package Application;), то элемент application в вашем androidManifest.xml должен выглядеть как

<application android:name=".MyApplication" [...]

Если этот класс MyApplication находится внутри пакета Application.app (package Application.app;), то в манифесте вы должны написать:

<application android:name=".app.MyApplication" [...]

Если вы не расширили android.app.Application (у вас нет класса MyApplication extends android.app.Application), просто хотели установить имя для вашего приложения, удалите его этим атрибутом, так как он говорит компилятору, что есть расширение Application, которое должно быть создано вместо значения по умолчанию android.app.Application.

И, наконец, если первое предположение неверно, и вы по какой-то причине изменили объявление пакета в элементе manifest вашего androidManifest, отмените его или обновите ваши классы, чтобы они были в этом пакете.

9 голосов
/ 27 января 2017

Для меня проблема была с мгновенным запуском.Отключение решило проблему.

Будет ли обновление, если я найду решение для повторного включения и обеспечения его работы.

3 голосов
/ 07 мая 2012

этот ответ помог мне, в основном переименуйте вашу библиотеку в libs, если вы используете SDK 17+ https://stackoverflow.com/a/10176048/46459

2 голосов
/ 08 января 2013

В моем случае я изменил уровень соответствия компилятора JAVA с 1,7 до 1,6, и проблема была решена.

1 голос
/ 02 мая 2011

Вам необходимо исправить атрибут android:name.Та же проблема, упомянутая в ClassNotFoundException после изменения имени приложения в Android

1 голос
/ 02 мая 2011

Должно package="Application" быть package="MyApplication"?

1 голос
/ 02 мая 2011

убедитесь, что все ссылки в вашем манифесте были обновлены с учетом вашего нового имени пакета.

0 голосов
/ 20 сентября 2018

Удаление этих строк работало для меня:

compileOptions {
   sourceCompatibility JavaVersion.VERSION_1_8
   targetCompatibility JavaVersion.VERSION_1_8
}

Обновление:
Причиной этой проблемы является то, что я не установил JAVA 8 на моем ПК

0 голосов
/ 13 января 2016

Просто очистите проект и перестройте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...