java.lang.RuntimeException:无法实例化活动ComponentInfo {}:java.lang.ClassNotFoundException:

时间:2014-01-16 23:43:19

标签: android android-manifest

我之前从acra收到了崩溃报告,这是堆栈跟踪:

  java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.PACKAGENAME/com.PACKAGENAME.Timetable}: java.lang.ClassNotFoundException: com.PACKAGENAME.Timetable
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1992)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2093)
    at android.app.ActivityThread.access$600(ActivityThread.java:139)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1204)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4801)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method._logged_invoke(Method.java:524)
    at java.lang.reflect.Method.invoke(Method.java:513)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.PACKAGE.Timetable
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:72)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520)
    at java.lang.ClassLoader._logged_loadClass(ClassLoader.java:480)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:472)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1056)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
    ... 12 more
java.lang.ClassNotFoundException: com.PACKAGE.Timetable
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:72)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520)
    at java.lang.ClassLoader._logged_loadClass(ClassLoader.java:480)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:472)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1056)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2093)
    at android.app.ActivityThread.access$600(ActivityThread.java:139)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1204)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4801)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method._logged_invoke(Method.java:524)
    at java.lang.reflect.Method.invoke(Method.java:513)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    at dalvik.system.NativeStart.main(Native Method)

我认为这是因为我在清单中有以下活动,但从未使用过。

    <activity
        android:name="com.PACKAGENAME.Timetable"
        android:label="@string/timetable" >
    </activity>

我的项目中没有名为Timetable的类,并且从未调用该活动。我知道我应该删除它(我会),但我想知道为什么它不会导致应用程序更多崩溃?这已经在应用程序中持续了几个月,并且今天才第一次导致它崩溃。该应用程序每天都会使用安静的位置,但我无法重现它(在100多个用户中,它只发生在今天一个用户)。为什么它现在才发生,我是否正确地认为它是由该活动引起的?

1 个答案:

答案 0 :(得分:3)

Java.lang.ClassNotFoundException表示应用程序运行时中缺少一个类。对于我的情况,首先检查AndroidManifest.xml以确保声明了活动,然后我想检查是否已将所有必需的库添加到构建路径。

右键点击项目 - &gt;属性 - &gt; java构建路径 - &gt;库,添加库或创建一个包含类的库,并为库启用订单导出。