首页 > 代码库 > Android应用程序启动时发生AndroidRuntime : ClassNotFoundException for Activity class的解决方法

Android应用程序启动时发生AndroidRuntime : ClassNotFoundException for Activity class的解决方法

在android应用程序启动时抛出下面异常导致启动失败:
07-09 17:12:35.709: ERROR/AndroidRuntime(3866): Uncaught handler: thread main exiting due to uncaught exception

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.anselm.eickhoff.rhythm/org.anselm.eickhoff.rhythm.RhythmGameActivity}: java.lang.ClassNotFoundException: org.anselm.eickhoff.rhythm.RhythmGameActivity in loader dalvik.system.PathClassLoader@4001e740

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2497)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.ActivityThread.access$2200(ActivityThread.java:126)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.os.Handler.dispatchMessage(Handler.java:99)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.os.Looper.loop(Looper.java:123)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.ActivityThread.main(ActivityThread.java:4595)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at java.lang.reflect.Method.invokeNative(Native Method)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at java.lang.reflect.Method.invoke(Method.java:521)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at dalvik.system.NativeStart.main(Native Method)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): Caused by: java.lang.ClassNotFoundException: org.anselm.eickhoff.rhythm.RhythmGameActivity in loader dalvik.system.PathClassLoader@4001e740

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at java.lang.ClassLoader.loadClass(ClassLoader.java:573)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at java.lang.ClassLoader.loadClass(ClassLoader.java:532)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2489)

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): ... 11 more


个人按下面顺序排查:

1.

在Manifest.xml中查看Activity的名字是否书写正确。

2.

在Manifest.xml确认Activity标签中的android:name属性的格式,例如我的activity的名字是helloworld,确认android:name=”.helloworld”(其中的点很重要)。

3.

如果有添加外部包的情况下,在工程根目录下建libs目录,然后将需要导入的外部包放入此目录内再add jars。

4.

如果上面都确保OK的情况下仍发生问题的话,clean工程->关闭eclipse->在命令行中重启adb(adb kill-server adbstart-server)->打开eclipse->编译启动。

 

上面4步基本能解决问题。

Android应用程序启动时发生AndroidRuntime : ClassNotFoundException for Activity class的解决方法