Android-приложение ClassNotFoundException для основной деятельности - PullRequest
20 голосов
/ 27 мая 2011

Большинство устройств могут запускать мое приложение, но я получил следующее сообщение об ошибке:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.company.app/com.company.app.MainActivity}: java.lang.ClassNotFoundException: com.company.app.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/com.company.app-1/pkg.apk]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2755)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2854)
at android.app.ActivityThread.access$2300(ActivityThread.java:136)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2179)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:5068)
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:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.company.app.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/com.company.app-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:1034)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2747)
... 11 more

Я нашел, что есть связанный ответ: ClassNotFoundException Android

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

Ответы [ 12 ]

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

Благодаря контролю версий я заметил, что в моем XML-файле .classpath не было этих строк:

<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>

Это вызвало отсутствие класса для основной деятельности.

0 голосов
/ 11 октября 2013

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

Что я сделал, так это переместил его из

com.example.MainActivity

в

Activity

так в моем манифесте это выглядело так:

 android:name="Activity.MainActivity"`

Решил, вернув обратно в оригинальную упаковку. Это также можно решить путем правильного переименования ваших пакетов:

Например: com.example.Activity.MainActivity

Надеюсь, это кому-нибудь поможет.

...