Ошибка «Невозможно создать экземпляр активности»

В одном из моих Android-приложений работает около 100 000 пользователей, и примерно 10 раз в неделю я получаю следующее сообщение об ошибке с помощью инструмента Google на рынке:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.rebm.asp/org.rebm.asp.MainActivity}: java.lang.ClassNotFoundException: org.rebm.asp.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/org.rebm.asp-1/pkg.apk] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2753) at android.app.ActivityThread.access$2500(ActivityThread.java:129) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2107) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:143) at android.app.ActivityThread.main(ActivityThread.java:4701) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassNotFoundException: org.rebm.asp.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/org.rebm.asp-1/pkg.apk] at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) at java.lang.ClassLoader.loadClass(ClassLoader.java:573) at java.lang.ClassLoader.loadClass(ClassLoader.java:532) at android.app.Instrumentation.newActivity(Instrumentation.java:1021) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2651) ... 11 more 

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

Кто-нибудь знает, что может быть проблемой или как я могу ее диагностировать?

Solutions Collecting From Web of "Ошибка «Невозможно создать экземпляр активности»"

Трассировка стека, которую вы задаете в вопросе, содержит доказательство того, что проблема связана с перемещением приложения на SD-карту:

Java.lang.RuntimeException: Невозможно создать экземпляр активности. ComponentInfo {org.rebm.asp / org.rebm.asp.MainActivity}: java.lang.ClassNotFoundException: org.rebm.asp.MainActivity в загрузчике dalvik.system.PathClassLoader [/ mnt /asec/org.rebm.asp-1/pkg.apk]

Как вы можете видеть, путь к вашему приложению содержит / mnt / asec, который является точкой подключения Android для безопасного приложения.

Чтобы проверить, не возникла ли эта проблема из-за Apps2SD, вы должны проверить, есть ли у всех трассировок стека каталог / mnt / asec в пути к вашему приложению. Если все это так, вы можете быть уверены, что это ошибка Apps2SD.

Как говорили другие, такие проблемы возникают из-за того, что SD-карта не доступна при загрузке приложения или из поврежденного раздела asec на SD-карте.

Ваше приложение каким-либо образом регистрируется для запуска при загрузке или это какой-то виджет, который система попытается загрузить, даже если SD-карта еще не установлена? Если да, возможно, вам следует отключить возможность перемещения приложения на SD-карту.

Имея ту же «редкую» проблему во всех опубликованных играх.

Может возникнуть проблема с установкой на SD-карту или перемещением приложения на SD-карту, а затем с удалением SD-карты.

Другое предположение, что приложение загружается или устанавливается несколько раз.

Я не смог воспроизвести это, так что я тоже не смог пригвоздить его.

Ну, есть несколько предложений, которые могут помочь вам отладить ваше приложение. Надеюсь, они решают вашу проблему. Также опубликуйте свой XML-файл манифеста Android и фрагмент метода OnCreate Method от MainActivity, чтобы мы могли также помочь вам отладить его и сузить возможности …

Предложения:

1) В вашем Android XML проверьте, является ли ваша минимальная версия Sdk ( android: minSdkVersion = "3" ) равной 3? Если это изменение, оно равно 7+. Я нашел этот трюк полезным иногда, когда справлялся с редкими проблемами.

2) В вашем Android XML проверьте, что вы зарегистрировали свою деятельность там. Если нет, зарегистрируйте его, каждое новое мероприятие должно быть зарегистрировано перед его использованием. Если ваша активность зарегистрирована, проверьте правильность пути, который вы ему поставляете.

3) Очистите проект и постройте его снова, чтобы обновить R.java и не использовать кешированные файлы.

4) Перенесите свой проект, создайте новый проект и скопируйте туда все свои файлы. Он также решает редкие проблемы.

5) Согласно одному пользователю:

Я просто получил ту же ошибку (не удалось создать активность …) с помощью Opera Mini. Opera Mini была на SD-карте (перемещена на SD-карту в настройках приложения). Ошибка, похоже, связана с тем фактом, что я вчера поменял SD-карту. Устройство было выключено, я скопировал все данные с старой карты на новую карту (с помощью cp -a), а затем вставил новую карту и снова запустил устройство. Кажется, все работает так, как ожидалось, но теперь я вижу, что все приложения на SD-карте вылетают с той же ошибкой.

 Device: HTC Desire HD (Android 2.2) Old SDHC card: SanDisk 8GB class 4 New SDHC card: Kingston 16GB class 4 

Поэтому я бы сказал, что это ошибка Android, а не то, что может быть исправлено разработчиками приложений.

Также см .: http://android-developers.blogspot.com/2010/07/apps-on-sd-card-details.html

 It has always been the case that when you swap SD cards on an Android device, if you physically copy the contents of the old card to the new one, the system will use the data on the new card as if nothing had changed. This is also true of apps which have been installed on the SD card." 

Это кажется неправильным.

Надеюсь, один из них решит вашу проблему.

У меня был этот вопрос, но не с активностью. Исправлено обходное решение:

 ClassLoader myClassLoader = TroubleClass.class.getClassLoader(); Thread.currentThread().setContextClassLoader(myClassLoader); 

Попробуйте следующие ссылки:

«Невозможно создать экземпляр активности 1»

«Невозможно создать экземпляр активности 2»

Сила закрытия после добавления ресурсов и текстового просмотра

Может случиться так, что приложение отлично работает на вашем затмении и мобильном телефоне , когда вы установите его из затмения, но может упасть на рынок (произошло со мной), если с вами это случится, вам нужно сделать 2 вещи , и вы Выйдет из этой ситуации.

  1. Очистите проект и перестройте его. (Использование Project-Clean)
  2. Удалите и повторно включите библиотеки , если они есть.