Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;无法实例化“活动”;错误_Java_Android_Mobile - Fatal编程技术网

Java &引用;无法实例化“活动”;错误

Java &引用;无法实例化“活动”;错误,java,android,mobile,Java,Android,Mobile,我的一个Android应用程序有大约100000个用户,每周大约有10次,我通过谷歌的市场工具向我报告以下异常情况: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.rebm.asp/org.rebm.asp.MainActivity}: java.lang.ClassNotFoundException: org.rebm.asp.MainActivity in loader dalvi

我的一个Android应用程序有大约100000个用户,每周大约有10次,我通过谷歌的市场工具向我报告以下异常情况:

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
通过联机搜索,此错误通常表示清单文件和所使用的包名有问题。但是,我无法在自己的设备或模拟器上重现此错误。我只通过市场工具知道这个错误。我所能得出的结论是,这是一个罕见的错误,因为我知道很多人都在使用该应用程序,而且没有任何评论表明它崩溃

有人知道问题可能是什么,或者我如何诊断它吗?

在所有已发布的游戏中都有相同的“罕见”问题

可能是安装到SD卡或将应用程序移动到SD卡,然后卸下SD卡时出现问题

另一种猜测是,该应用程序不知何故被下载或安装了多次


我无法复制这个,所以也无法确定它

这里有几条建议可以帮助您调试应用程序。希望他们能解决你的问题。同时发布您的Android清单XML文件和MainActivity的onCreate方法片段,以便我们也可以帮助您调试它并缩小可能性

建议:

1) 在Android XML中,检查您的最低Sdk版本(Android:minSdkVersion=“3”)是否为3?如果是,则将其更改为7+。我发现这个技巧有时在处理罕见的问题时很有用

2) 在Android XML中,检查您是否已在那里注册了活动。如果没有,请注册,每个新活动都必须在使用前注册。如果您的活动已注册,请重新检查您提供给它的路径是否正确

3) 清理项目并重新构建它,以便更新R.java,并且不使用任何缓存文件

4) 迁移项目,创建一个新项目,并将所有文件复制到该项目。它还解决了一些罕见的问题

5) 据一位用户说:

我刚刚在Opera Mini中遇到了同样的错误(无法实例化活动…)。Opera Mini在SD卡上(在应用程序设置中移动到SD卡)。这个错误似乎与我昨天换了SD卡有关。设备关闭后,我将所有数据从旧卡复制到新卡(使用cp-a),然后插入新卡并再次启动设备。一切似乎都按预期运行,但我现在看到SD卡上的所有应用程序都会因相同的错误而崩溃

Device: HTC Desire HD (Android 2.2)
Old SDHC card: SanDisk 8GB class 4
New SDHC card: Kingston 16GB class 4
所以我想说,这是一个Android bug,不是应用程序开发人员可以修复的

另见:

这似乎是不正确的


希望其中一个能解决您的问题。

我有这个问题,但与活动无关。修复了一个解决方法:

ClassLoader myClassLoader = TroubleClass.class.getClassLoader();
Thread.currentThread().setContextClassLoader(myClassLoader);

请尝试以下链接:


您在问题中给出的堆栈跟踪包含问题是由于将应用程序移动到SD卡所致的证据:

java.lang.RuntimeException:无法 实例化活动 ComponentInfo{org.rebm.asp/org.rebm.asp.MainActivity}: java.lang.ClassNotFoundException: 加载程序中的org.rebm.asp.main活动 dalvik.system.PathClassLoader[/mnt/asec/org.rebm.asp-1/pkg.apk]

如您所见,应用程序的路径是contains/mnt/asec,这是安卓安全应用程序装载点

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

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


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

当您从eclipse安装应用程序时,应用程序可能会在eclipse和手机上正常运行,但如果您在市场上遇到同样的情况,应用程序可能会崩溃,你需要做两件事,你会摆脱这种状况

  • 清理项目并重建。(使用Project Clean)
  • 删除并重新包含库(如果有)

  • 我刚刚注意到我的一个应用程序上第一次出现同样的错误。我很想知道是什么原因造成的。我要开始悬赏了…哇,谢谢你,康。奖金似乎真的能激励人们回答一个多月没有答复的问题!不幸的是,我仍然不断地在我的市场控制台中收到这个错误信息,我还没有接近找出问题所在或如何解决它。我没有看到再次发生——只是发生过一次,但它仍然困扰着我。我在这里也有很多讨论,因为我在AndroidManifest中设置了android:installLocation=PreferseTernali,可以确认我问题中的应用程序已启用移动到SD,并设置为默认执行移动。你能解释一下这是什么以及为什么你认为它会起作用吗?我不是这方面的真正专家,但似乎dalvik由于某些bug,没有为某些类提供必要的类加载器。我不知道为什么会出现这个bug,但是如果你明确地告诉他使用所需类的类加载器,问题就消失了。但是,这个代码会放在哪里呢?该错误似乎表明活动本身无法启动,因此我看不到放置代码的地方。由于所有活动都是在ui线程中启动的,您可以在发送意图之前尝试添加此代码。请尝试将其添加到
    ClassLoader myClassLoader = TroubleClass.class.getClassLoader();
    Thread.currentThread().setContextClassLoader(myClassLoader);