Java运行时环境导致的致命错误

我正在执行一个junit测试用例

我收到以下错误,

A fatal error has been detected by the Java Runtime Environment: Internal Error (classFileParser.cpp:3174), pid=2680, tid=2688 Error: ShouldNotReachHere() JRE version: 6.0_18-b07 Java VM: Java HotSpot(TM) Client VM (16.0-b13 mixed mode windows-x86 ) 

任何人都可以建议解决方案

我遇到了同样的问题,但是通过大量的谷歌搜索,我找到了答案! 见本页

从链接引用:


 # An unexpected error has been detected by Java Runtime Environment: # # Internal Error (classFileParser.cpp:2924), pid=5364, tid=6644 # Error: ShouldNotReachHere 
  1. 那是因为我们正在使用Android的JUnit存根实现。 转到运行 – >运行方式 – >再次运行配置,并在最近创建的JUnit配置中,Classpath的Bootstrap条目删除Android库
  2. 然后使用Advanced …按钮添加库,并添加JRE System Library和JUnit 3
  3. 申请并运行

试试这个,它对我有用。

你需要对Sun采取这种做法 – 对我来说看起来像一个JVM错误。 如果它是可重现的,您应该能够以生成更多细节的方式运行java(例如-verbose等)。 如果你可以将它减少到一个触发bug的最小情况(源代码总是有帮助的!),这也有很长的路要走。

http://java.sun.com/developer/technicalArticles/bugreport_howto/index.html

http://bugreport.sun.com/bugreport/crash.jsp

与此同时,您可能希望尝试使用不同的JVM实现(甚至可能是Sun JRE的旧补丁级别)。

转至运行方式 – > 运行配置…并选择您正在使用的配置。
选择Class Path选项卡,然后选择BootStrap Entries
单击Advance ,然后单击Add Library并选择JRE System Library
提出它并使其成为BootstrapEntries列表中的第一个条目。

申请并运行…

另一种可能的解释:硬件故障。 如果您可以在不同的计算机上重现错误,则排除在外。

我解决了这个问题

  • 退出日食
  • 删除项目中的bingen目录
  • 开始日食
  • 重建您的项目

我刚刚找到了devdanke发布的这个问题的解决方案:

“截至2010年7月11日和Android 2.1,我使用的工作是将测试分成不同的类。任何不调用任何Android API的测试都会进入他们自己的类。对于每个类,我在其运行配置,类路径选项卡中删除了对Android的引用。“

然后,无法在项目中运行所有测试,因此逐个按类配置它的问题。 更好的方法是使用不同的库集创建2个测试项目。

可以在链接后创建标准的Android JUnit Test项目,示例测试类如下所示:

 import android.test.AndroidTestCase; public class ConverterTest extends AndroidTestCase { public void testConvert() { assertEquals("one", "one"); } } 

然后通过从项目构建路径中删除Android库,并添加JRE系统库和JUnit 3库,以及示例测试类如下所示,可以从Android JUnit Test项目转换JUnit Test项目:

 import junit.framework.TestCase; public class ConverterTest extends TestCase{ public void testConvert() { assertEquals("one", "one"); } } 

我遇到了类似的问题,我发现这是因为我使用main []存根条目生成了一个新活动。 一旦我从新活动templatye中删除了main []代码,错误便消失了。

因人而异

这可能是一个JVM错误; 看@Zac的回答。 但也可能是你的junit测试用例导致加载了损坏的字节码文件。 尝试重建所有.class文件,如果这不能解决问题,请尝试重新获取代码所依赖的任何外部库。

您是否在支持的平台上运行(Windows,少数几个Linux版本之一?)如果没有,那是第一个尝试的平台。

如果您在受支持的平台上,则降级到_17并查看是否有帮助。

然后向Sun报告错误并希望他们有一天会修复它(除非你想给他们钱更快地修复它)。

转至运行方式 – >运行配置 – >类路径 – > BootStrap条目单击高级,然后单击添加库并选择JRE系统库作为第一个条目。 申请并运行…

我不确定您是否能够为您的问题找到解决方案,但是当我在寻找我面临的同样问题的解决方案时,您的问题刚刚出现。 我从堆栈本身得到了一个解决方案,所以只想与你分享链接,如果这无论如何都有助于你。 链接如下:

无法在Eclipse Android项目中运行JUnit 4测试用例

另一个可能的原因(供将来参考):我不小心在我的代码中的main方法中复制,导致Eclipse将项目识别为java应用程序,从而使用该配置启动它。

为了解决这个问题,我进入了Run> Run Configurations …然后只需在左栏中选择它,然后从我在java应用程序中假定的main更改为我的android应用程序的主要活动。