内部错误(javaClasses.cpp:129)

Fra*_*n b 11 java eclipse testing junit

我正在尝试在Eclipse上使用JUnit 4和Robolectric进行测试,但是每次我收到此错误:

Invalid layout of java.lang.String at value
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (javaClasses.cpp:129), pid=3546, tid=140317899335424
#  fatal error: Invalid layout of preloaded class
#
# JRE version: 7.0_07-b10
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.3-b01 mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
Run Code Online (Sandbox Code Playgroud)

我的测试非常简单.它只用于检查所有工作:

@RunWith(RobolectricTestRunner.class)
public class FormatTest {

    @Test
    public void getFormatElapsedTimeOnSecondsTest(){
        assertEquals("3seg","3seg");
    }
}
Run Code Online (Sandbox Code Playgroud)

我系统上安装的Java是:

java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我不明白发生了什么.

Jef*_*ltz 21

这可能不是你的问题,但我能够通过使用Run As - > Android Application来解决这个问题.

但是,我不确定你是否使用了android.可能会检查运行配置是否存在其他问题.


小智 12

您需要更正运行配置.

如果要运行JUnit测试

"right click on test class in the package explorer"->"Run As"->"JUnit Test"
Run Code Online (Sandbox Code Playgroud)

在Android项目中,您需要将"Android JUnit Test Launcher"设置为启动器.即使您的启动配置具有"JUnit"类型,您也可以使用该启动器.

你可以在下面找到它:

"right click on test class in the package explorer"->"Properties"->"Run/Debug Settings"->"Edit..." 
Run Code Online (Sandbox Code Playgroud)


示例:

测试:

import junit.framework.TestCase;

public class ExampleTest extends TestCase{
public ExampleTest(String name){
    super(name);
}

protected void setUp() throws Exception{
    super.setUp();
}

protected void tearDown() throws Exception{
    super.tearDown();
}

public void testFoo(){
    fail("Not yet implemented");
}
Run Code Online (Sandbox Code Playgroud)

}

创建运行配置:

"Run"->"Run Configurations..."->"Right click on JUnit"->"New"->"Set project and Test class"->"Select Android JUnit Test Launcher"->"Run"
Run Code Online (Sandbox Code Playgroud)

注意:如果您使用的是x86 jdk,如果Launcher设置为"Eclipse JUnit Launcher",则会出现以下错误:

    Invalid layout of java.lang.String at value
    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  Internal Error (javaClasses.cpp:129), pid=3844, tid=4828
    #  fatal error: Invalid layout of preloaded class
    #
    # JRE version: 7.0_17-b02
    # Java VM: Java HotSpot(TM) Client VM (23.7-b01 mixed mode windows-x86 )
    # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
Run Code Online (Sandbox Code Playgroud)