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



我之前从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>

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

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

右键单击项目 -> 属性 ->

java 构建路径 -> 库,添加库或创建一个包含类的库,并为库启用顺序导出。

相关内容

最新更新