Невозможно создать экземпляр активности ComponentInfo - PullRequest
3 голосов
/ 18 сентября 2011

Я разрабатываю приложение для Froyo в качестве минимальной версии и Gingerbread в качестве целевой версии. Итак, манифест показывает:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="10"/>

У меня есть эмулятор и Nexus One с Gingerbread, и приложение правильно развертывается и устанавливается. Но при запуске происходит сбой, и в журнале выдается сообщение об ошибке:

09-18 06:35:11.240: ERROR/AndroidRuntime(382): FATAL EXCEPTION: main
09-18 06:35:11.240: ERROR/AndroidRuntime(382): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.my.package/com.my.package.Dashboard}: java.lang.ClassNotFoundException: com.my.package.Dashboard in loader dalvik.system.PathClassLoader[/data/app/com.my.package-2.apk]
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.os.Looper.loop(Looper.java:130)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.ActivityThread.main(ActivityThread.java:3683)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at java.lang.reflect.Method.invokeNative(Native Method)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at java.lang.reflect.Method.invoke(Method.java:507)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at dalvik.system.NativeStart.main(Native Method)
09-18 06:35:11.240: ERROR/AndroidRuntime(382): Caused by: java.lang.ClassNotFoundException: com.my.package.Dashboard in loader dalvik.system.PathClassLoader[/data/app/com.my.package-2.apk]
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
09-18 06:35:11.240: ERROR/AndroidRuntime(382):     ... 11 more

И да, в «Манифесте» объявлено действие «Панель инструментов»:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.my.package"
      android:versionCode="1"
      android:versionName="1.0"
      android:installLocation="auto">

      <activity android:name=".Dashboard"
              android:label="@string/app_name"
              android:screenOrientation="portrait">

            <intent-filter>
                  <action android:name="android.intent.action.MAIN"/>
                  <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
      </activity>

      ...

Так с чем может быть связана эта проблема? Это сводит меня с ума.

Ответы [ 12 ]

8 голосов
/ 15 июля 2012

У меня была эта проблема, которая также развивалась в Eclipse 4.2.На мою основную деятельность ссылался файл AndroidManifest.xml, включавший правильный пакет и имя, но по-прежнему не загружался.После небольшой отладки и комментирования, я обнаружил, что источником проблемы является интерфейс, который выполнял мой основной вид деятельности.Этот интерфейс определен в отдельном проекте, но мне не удалось сослаться на этот проект в Java Build Path .Поэтому, когда я строил вещи, они строились бы правильно, но я сразу же столкнулся с силой закрытия при запуске, с той же ошибкой, что и этот вопрос.

Чтобы исправить это, я щелкнул правой кнопкой мыши на Androidпроект, выбранный Java Build Path , добавил мой проект "общего кода" на вкладку Projects , а затем поставил флажок для этого же проекта на Order and Export вкладка.После этого все заработало.

4 голосов
/ 22 мая 2013

Я легко исправил эту проблему, восстановив свойства проекта:

  • Щелкните правой кнопкой мыши свой проект
  • Инструменты Android
  • Исправьте свойства проекта

Тогда ваши зависимости будут восстановлены как новые, и все будет хорошо!

3 голосов
/ 04 декабря 2012

Мое решение было в Project -> Properties -> Java Build Path -> Order and Export, вы должны отметить выбранные вами записи.НО также я испытал, если вы отметите Android.jar, там написано: «Преобразование в формат Dalvik завершилось неудачно с ошибкой 1»

Также удаляются все ваши библиотеки, кроме Android.xx, а затем очищается ваш проект с помощью Project ->Очистите, а затем добавьте свои библиотеки обратно (не забудьте поставить галочку в порядке и экспортировать), может решить проблему «Преобразование в формат Dalvik не удалось с ошибкой 1».

И еще одно место, которое вам нужно проверить, это Свойства-> Компилятор Java -> Соответствие JDK.

2 голосов
/ 25 сентября 2013

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

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

Я решил свою проблему, проверив частные библиотеки Android и зависимости Android в разделе Порядок и экспорт в пути Java Build

2 голосов
/ 20 декабря 2012

Вы можете исправить эту ошибку, исправив имя класса вашей активности в файле манифеста

2 голосов
/ 26 июня 2012

Для меня, как это было при обновлении phonegap (с 1.4 до 1.8.1).Мне пришлось обновить файл .project в корневом проекте.Я создаю новый проект и сравниваю новый файл с прежним.

0 голосов
/ 04 июня 2014

Сегодня у меня была та же проблема, и это была проблема с именами основного класса. Это был IdleActivity и как только я изменил его, установив IdleDnaActivity , приложение успешно запустилось.

0 голосов
/ 08 мая 2014

Я нашел этот пост с похожим вопросом и множеством возможных решений. Однако в моем случае проблема была в настройках моего проекта Android. Каким-то образом путь сборки Java моего проекта не был связан с исходной папкой. И именно поэтому мой файл манифеста не смог найти класс активности. Я решил эту проблему, связав папку src. Для этого щелкните правой кнопкой мыши на проекте «Свойства» -> «Java Build Path». Затем выберите вкладку «Источник». Проверьте, есть ли ваша папка src в списке. Если нет, нажмите «Добавить папку ...», а затем перейдите в папку src проекта.

0 голосов
/ 07 января 2014

Наконец-то я решил эту проблему, сделав два android-support-v4.jar одинаковыми .. просто скопируйте любой из android-support-v4.jar в любой из проектов, связанных с вашим проектом, и замените их ..

используя это добавление в манифест Android

   <uses-library android:name="com.google.android.maps" />
...