我之前从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多个用户中,它只发生在今天一个用户)。为什么它现在才发生,我是否正确地认为它是由该活动引起的?
答案 0 :(得分:3)
Java.lang.ClassNotFoundException表示应用程序运行时中缺少一个类。对于我的情况,首先检查AndroidManifest.xml以确保声明了活动,然后我想检查是否已将所有必需的库添加到构建路径。
右键点击项目 - &gt;属性 - &gt; java构建路径 - &gt;库,添加库或创建一个包含类的库,并为库启用订单导出。