2013-11-13 4 views
0

Итак, я работал над приложением в последнее время, которое отлично работает на большинстве устройств. Тем не менее, иногда происходит сбой приложения при запуске со следующей ошибкой:Что может быть причиной ClassNotFoundException?

java.lang.RuntimeException: Unable to instantiate activity 
ComponentInfo{com.mypackage.app/com.mypackage.app.activities.MainPager}: 
java.lang.ClassNotFoundException: com.mypackage.app.activities.MainPager 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1995) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2096) 
at android.app.ActivityThread.access$600(ActivityThread.java:138) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1207) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:213) 
at android.app.ActivityThread.main(ActivityThread.java:4787) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) 
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:115) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.ClassNotFoundException: 
com.mypackage.app.activities.MainPager 
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
at android.app.Instrumentation.newActivity(Instrumentation.java:1053) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1986) 
... 12 more 

Я понимаю, что это потому, что он не может найти класс под названием MainPager. Но как это возможно? Я имею в виду, класс должен быть там .. Я сам его там поставил :). Почему же он не находит его?

EDIT: Я думаю, что причина может быть то, что в моем манифесте У меня есть android:package="com.mypackage.app" определенно, но это мой запуск деятельность в пакете com.mypackage.app.activities. В настоящее время тестирование этой теории. Тем не менее странно, что это происходит только на некоторых устройствах.

Это решение не будет работать, поскольку я не могу обновить APK в Google Play (это должно быть одно и то же имя пакета в манифесте).

+1

Вы добавили класс активности в манифест? – kevin

+0

Да, я сделал :). И он работает отлично на большинстве устройств, это только некоторые из них, что он падает. – Zero

+0

попробуйте добавить активность с именем своего пакета, например 'com.mypackage.app.activities.MainPager' – ismail

ответ

0

С момента обновления ADT до версии 22 (май 2013 г.) вы должны установить флажок «Отдельные библиотеки Android» в Project -> Properties -> Java Build Path -> Order and Export in Eclipse для ваших старых проектов, чтобы избавиться от это исключение ...

+0

Он уже был проверен, но ошибка по-прежнему сохраняется на некоторых устройствах. – Zero

0

в манифесте добавить имя активность как этот

android:name=".activities.MainPager" 

, потому что вы дали имя пакета

android:package="com.mypackage.app" 
+0

Это уже есть как 'com.mypackage.app.activities.MainPager', так что должно быть хорошо? – Zero

0

Теперь я использую ART runtime на Nexus 5, и я получаю ClassNotFound для некоторых приложений.

Вы можете смело игнорировать их, если это относится к вашим пользователям.

Смежные вопросы