【问题标题】:Android intermittent class not found run time exceptionAndroid间歇性类未找到运行时异常
【发布时间】:2011-03-30 08:37:24
【问题描述】:

我的一两个用户在尝试运行我的应用程序时遇到上述类未找到运行时异常。

这怎么会发生,我该如何解决?是不是安装不好?

谢谢

保罗

通过 Android Publishers 网站收到的堆栈跟踪。我自己无法复制这个。 (com.android.app.app.app) 是清单中定义的应用/活动的名称。

java.lang.RuntimeException: 无法 实例化活动 组件信息{my,app.app.app/com.android.app.app.app}: java.lang.ClassNotFoundException: 加载程序中的 com.android.app.app.app dalvik.system.PathClassLoader[/mnt/asec/my,app.app.app-1/pkg.apk] 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2753) 在 android.app.ActivityThread.access$2500(ActivityThread.java:129) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2107) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:143) 在 android.app.ActivityThread.main(ActivityThread.java:4701) 在 java.lang.reflect.Method.invokeNative(Native 方法)在 java.lang.reflect.Method.invoke(Method.java:521) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 在 dalvik.system.NativeStart.main(Native 方法)引起: java.lang.ClassNotFoundException: 加载程序中的 com.android.app.app.app dalvik.system.PathClassLoader[/mnt/asec/my,app.app.app-1/pkg.apk] 在 dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:573) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:532) 在 android.app.Instrumentation.newActivity(Instrumentation.java:1021) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2651) ... 11 更多

【问题讨论】:

  • 更多信息会有用。
  • 像什么?确定类未找到运行时异常要么 100% 发生,要么根本不发生?
  • 例如,使用任何第三方 API、本机代码或您怀疑的任何其他内容都可能导致此类异常。
  • java.lang.RuntimeException:无法实例化活动 ComponentInfo{my,app.app.app/com.android.app.app.app}:java.lang.ClassNotFoundException:com.android.app .app.app 在加载器 dalvik.system.PathClassLoader[/mnt/asec/my,app.app.app-1/pkg.apk] 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659)
  • @Paul S:考虑发布一个完整的真实堆栈跟踪。 Android 中没有com.android.app.app.app package,除非某些硬件制造商在其中放置了一个。

标签: android exception-handling google-play


【解决方案1】:

我会检查这些用户是否在 SD 卡上安装应用程序:如果应用程序已安装,应用程序图标可能会在应用程序列表中可见(因为它存储在设备上)但如果 SD 卡当用户点击应用程序图标时,不可用(删除或可能安装以供 PC 通过 USB 读取)尝试加载将失败。你会注意到:

ComponentInfo{my,app.app.app/com.android.app.app.app}: java.lang.ClassNotFoundException: com.android.app.app.app in loader dalvik.system.PathClassLoader[/mnt/asec/my,app.app.app-1/pkg.apk] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659) at 

在上面的堆栈跟踪中:/mnt/asec 是设备上的 SD 卡存储路径吗?

【讨论】:

  • 嗨 Femi,查看androidforums.com/droid-all-things-root/… 似乎 /mnt/asec 是存储加密虚拟驱动器的位置,其中包含将包存储在 SD 卡上时。不过,如何捕获异常?
  • 您无法捕获异常:您的代码根本不存在于设备上,因此您无法捕获它。如果 SD 卡通过 USB 安装或移除,则您的代码当前不可用。告诉用户他们不能同时移除 SD/安装 SD 和使用应用程序。
  • 费米,我就是这么想的。 Android 很高兴将应用程序归咎于它完全无能为力的事情。感谢您的帮助。
猜你喜欢
  • 2014-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-17
  • 1970-01-01
相关资源
最近更新 更多