【问题标题】:How to resolve java.lang.ClassNotFoundException in ActivityThread.performLaunchActivity?如何解决 ActivityThread.performLaunchActivity 中的 java.lang.ClassNotFoundException?
【发布时间】:2012-06-19 21:54:17
【问题描述】:

对于我的 Android 应用程序,我在 Google Play 的开发者控制台中收到以下错误:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{PACKAGE_NAME/PACKAGE_NAME.MainActivity}: java.lang.ClassNotFoundException: PACKAGE_NAME.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/PACKAGE_NAME-1/pkg.apk]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3693)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: PACKAGE_NAME.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/PACKAGE_NAME-1/pkg.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1565)

虽然这个错误很少出现(并且可能会被忽略),但我发现拥有一个无错误的开发者控制台会更干净 :) 而且,我只想知道这个错误的原因。

是的,好像有一个类找不到。但为什么?我怎样才能防止这种情况发生?

【问题讨论】:

    标签: android exception classnotfoundexception


    【解决方案1】:

    更新(2015 年 4 月 26 日):

    经过进一步研究,我相信您是对的,这绝对是用户错误。 [/mnt/asec/PACKAGE_NAME-1/pkg.apk] 很可能意味着他们正在尝试将您的应用程序移至 SD 卡。请在此处阅读:

    Android intermittent class not found run time exception

    "Unable to instantiate activity" error

    Android: Unable to instantiate activity / ClassNotFoundException

    原文:

    这是 Logcat 看到的 Java RuntimeException。当我没有正确添加 Activity 以显示时,我已经多次看到这种情况发生。

    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{PACKAGE_NAME/PACKAGE_NAME.MainActivity}: java.lang.ClassNotFoundException: PACKAGE_NAME.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/PACKAGE_NAME-1/pkg.apk]
    

    【讨论】:

    • 谢谢!当然,我的清单没问题。这就是为什么我写了这个错误很少发生的原因。 <activity android:name=".MainActivity" android:launchMode="singleTask" ...><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>这可能是用户设备的错,因为它可能没有正确加载清单吗?
    • 我相信你是对的,这是一个用户错误,请阅读我的更新回复:)
    • 非常感谢 :) 所以他们可能正在使用第三方应用程序将我的应用程序移动到 SD 卡,尽管他们不应该这样做?
    • 我猜是这样。如果将应用程序移动到 sd 卡的默认(自然)方式不可用,从技术上讲,他们不应该这样做,因此它必须是 3rd 方应用程序。
    猜你喜欢
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多