java - "Unable to instantiate activity"错误

标签 java android mobile

我的一个 Android 应用有大约 100,000 名用户,每周大约 10 次,我通过 Google 的市场工具向我报告了以下异常:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.rebm.asp/org.rebm.asp.MainActivity}:
  java.lang.ClassNotFoundException: org.rebm.asp.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/org.rebm.asp-1/pkg.apk]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2659)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2753)
at android.app.ActivityThread.access$2500(ActivityThread.java:129)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2107)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4701)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: org.rebm.asp.MainActivity in loader dalvik.system.PathClassLoader[/mnt/asec/org.rebm.asp-1/pkg.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2651)
... 11 more

从网上搜索,这个错误通常表明 list 文件和正在使用的包名有问题。但是,我无法在我自己的设备或模拟器上重现此错误。我只通过市场工具知道这个错误。我只能得出结论,这是一个罕见的错误,因为我知道很多人都在使用该应用,而且没有任何评论表明它会崩溃。

有谁知道问题可能是什么或我如何诊断它?

最佳答案

您在问题中提供的堆栈跟踪包含证明问题是由于将应用程序移至 SD 卡引起的:

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

如您所见,应用程序的路径包含 /mnt/asec,这是 Android 安全应用程序挂载点。

为了验证此问题是否是由 Apps2SD 引起的,您应该检查您拥有的所有堆栈跟踪是否包含应用程序路径中的 /mnt/asec 目录。如果都是这样,您可以确定这是一个 Apps2SD 错误。

正如其他人所说,这类问题有时是由于在加载应用程序时 SD 卡不可用或 SD 卡上损坏的 asec 分区造成的。

您的应用程序是否以任何方式注册自己以在启动时启动,或者它是某种小部件,即使尚未安装 SD 卡,系统也会尝试加载?如果是这样,也许您应该关闭将应用程序移动到 SD 卡的选项。

关于java - "Unable to instantiate activity"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5025582/

相关文章:

android - 如何在 onDraw 方法中创建和显示 ListView ?

android - WebView 在 onPause 后不显示内容

javascript - 如何让 Xi JS x$ ('' ) 与现有的 jquery 代码一起工作 $ ('' )?

用于移动浏览器重新启动或设备唤醒的 Javascript 事件

events - Android/iPhone webkit,键盘弹出时触发事件?

java.sql.SQLException : No suitable driver found for jdbc:mysql://localhost:3306 异常

java - Java 服务包装器的 JVM 错误

java - postgresql 中的 JdbcTemplate 批量更新 - 日期丢失时间?

java - 在 MigLayout 中显示所有边框

android - 如何更改 Android 中的搜索栏颜色?