java.lang.RuntimeException: невозможно создать экземпляр компонента ComponentInfo - PullRequest
143 голосов
/ 14 января 2011

Я пытался запустить пример кода При запуске приложения в эмуляторе андроид 1.5 я получил эти ошибки .... У кого-нибудь есть подсказка? ..

ОШИБКА от LogCat:

01-13 02:28:08.392: ERROR/AndroidRuntime(2888): FATAL EXCEPTION: main
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.s.android.test/com.s.android.test.MainActivity}: java.lang.ClassNotFoundException: com.s.android.test.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.s.android.test-2.apk]
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1544)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.os.Looper.loop(Looper.java:123)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.main(ActivityThread.java:3647)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.reflect.Method.invokeNative(Native Method)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.reflect.Method.invoke(Method.java:507)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at dalvik.system.NativeStart.main(Native Method)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): Caused by: java.lang.ClassNotFoundException: com.s.android.test.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.s.android.test-2.apk]
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1536)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888):     ... 11 more
01-13 02:28:08.407: WARN/ActivityManager(112):   Force finishing activity com.s.android.test/.MainActivity

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

Ответы [ 38 ]

6 голосов
/ 16 июля 2014

Просто очистите ваш рабочий проект или перезапустите Eclipse.Затем запустите свой проект.это будет работать.

6 голосов
/ 27 августа 2012

Для меня строка пакета в AndroidManifest.xml неверна (скопирована из учебника).Убедитесь, что строка пакета в этом файле совпадает со строкой вашего основного действия, например

 package="com.example.app"

. Простой способ сделать это - открыть файл AndroidManifest.xml на вкладке «Манифест» ивведите его в текстовое поле рядом с «Пакет» или используйте кнопку «Обзор».

Кроме того, строка пакета для моей активности была неправильной, например

<activity android:name="com.example.app.MainActivity" android:label="@string/app_name">

Я (тупо) получил то жеОшибка недели спустя, когда я переименовал имя пакета.Если вы сделаете это, убедитесь, что вы также обновили файл AndroidManifest.xml.

5 голосов
/ 19 июня 2012

Хорошо, я довольно опытный на iPhone, но плохо знаком с Android. Я получил эту проблему, когда у меня было:

Button infoButton = (Button)findViewById(R.id.InfoButton);

эта строка кода выше:

@Override
public void onCreate (Bundle savedInstanceState) {
}

Может быть, я лишен сна: P

3 голосов
/ 24 октября 2012

Я недавно столкнулся с этим при новой переустановке Eclipse.Оказывается, мой уровень соответствия компилятору был установлен на Java 1.7, и проект требовал 1.6.

В Eclipse: Проект -> Свойства -> Компилятор Java -> Соответствие JDK

2 голосов
/ 07 марта 2013

Другой причиной этой проблемы может быть отсутствующая библиотека.

Перейдите в Свойства -> Android и убедитесь, что вы правильно добавили библиотеки

2 голосов
/ 06 апреля 2012

Получил эту проблему и исправил ее, установив свойство «режим запуска» действия.

2 голосов
/ 11 июня 2013

У меня была такая же проблема, но моя активность была объявлена ​​в файле манифеста с правильным именем.

Моя проблема заключалась в том, что мне не нужно было импортировать сторонние библиотеки в папку "libs", и мне нужно было ссылаться на них в моем проекте (щелчок правой кнопкой мыши, свойства, Java Build Path, Libraries, Add Jar .. .).

2 голосов
/ 07 июня 2014

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

до

activity android:name=".MainActivity" 

после

activity android:name="new_package.MainActivity"
1 голос
/ 13 ноября 2017

Как подсказывает djjeck в комментарии в этом ответе, я пропустил модификатор public для моего класса.

Должно быть

public class MyActivity extends AppCompatActivity {

Это может помочь таким, как я.

1 голос
/ 07 октября 2017

Если у вас установлены Android Studio 2.3.3 и Android Studio 3.0.0, переключение между двумя программами для разработки приведет к этой ошибке. Это связано с тем, что существуют ситуации, когда классы, поддерживаемые в одной программе, не поддерживаются другой, и наоборот. Важно обеспечить согласованность используемой версии Android Studio для разработки проекта.

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