Android项目运行junit测试类时出现错误Internal Error (classFileParser.cpp:3494)的解决办法

http://www.blogjava.net/menglikun/archive/2011/11/09/363341.html

以前的项目运行好好的,升级了ADT后,进行junit测试时出现错误:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (classFileParser.cpp:3494), pid=7480, tid=7376
#  Error: ShouldNotReachHere()
#
# JRE version: 6.0_29-b11
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.4-b02 mixed mode windows-amd64 compressed oops)
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

解决办法:
1.选中junit测试类,右键 -> Run As -> Run Configurations...
2.切换到Classpath选项栏,删掉Bootstrap Entries里面的Android Library,然后点击右侧的Advanced.. -> Add Library -> JRE System Library,一路next即可。

这时再运行该类,就能正常运行了。

INSTRUMENTATION_STATUS: class=android.virtualdevice.cts.camera.VirtualCameraTest INSTRUMENTATION_STATUS: current=1 INSTRUMENTATION_STATUS: id=AndroidJUnitRunner INSTRUMENTATION_STATUS: numtests=1 INSTRUMENTATION_STATUS: stream= android.virtualdevice.cts.camera.VirtualCameraTest: INSTRUMENTATION_STATUS: test=initializationError INSTRUMENTATION_STATUS_CODE: 1 INSTRUMENTATION_STATUS: class=android.virtualdevice.cts.camera.VirtualCameraTest INSTRUMENTATION_STATUS: current=1 INSTRUMENTATION_STATUS: id=AndroidJUnitRunner INSTRUMENTATION_STATUS: numtests=1 INSTRUMENTATION_STATUS: stack=java.lang.RuntimeException: Failed loading specified test class 'android.virtualdevice.cts.camera.VirtualCameraTest' at androidx.test.internal.runner.DirectTestLoader.doCreateRunner(DirectTestLoader.java:50) at androidx.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:64) at androidx.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:842) at androidx.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:663) at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:437) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2600) Caused by: java.lang.ClassNotFoundException: android.virtualdevice.cts.camera.VirtualCameraTest at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:607) at androidx.test.internal.runner.DirectTestLoader.doCreateRunner(DirectTestLoader.java:44) ... 5 more Caused by: java.lang.ClassNotFoundException: android.virtualdevice.cts.camera.VirtualCameraTest ... 8 more INSTRUMENTATION_STATUS: stream= Error in initializationError(android.virtualdevice.cts.camera.VirtualCameraTest): java.lang.RuntimeException: Failed loading specified test class 'android.virtualdevice.cts.camera.VirtualCameraTest' at androidx.test.internal.runner.DirectTestLoader.doCreateRunner(Dire
03-15
`org.junit.platform.commons.JUnitException: TestEngine with ID 'junit-vintage'` 错误通常在使用 JUnit 进行测试出现,意味着 JUnit Vintage 测试引擎在发现测试用例失败。以下是一些可能的解决方法: ### 1. 检查依赖配置 确保项目的依赖配置正确,包含 JUnit Vintage 引擎的依赖。在 Maven 项目中,需要添加以下依赖: ```xml <dependency> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> <scope>test</scope> </dependency> ``` 在 Gradle 项目中,添加如下依赖: ```groovy testImplementation 'org.junit.vintage:junit-vintage-engine' ``` ### 2. 检查 JUnit 版本兼容性 确保 JUnit Vintage 引擎与项目中使用的其他 JUnit 组件版本兼容。例如,JUnit 5 与 JUnit 4 有不同的版本要求,混合使用可能会导致冲突。 ### 3. 检查测试类和方法 确保测试类和方法符合 JUnit Vintage 引擎的要求。JUnit Vintage 支持 JUnit 3 和 JUnit 4 的测试风格,测试类需要使用 `@Test` 注解(JUnit 4)或继承 `TestCase` 类(JUnit 3)。 ### 4. 检查类路径 确保测试类在类路径中,并且可以被 JUnit Vintage 引擎发现。有候,IDE 可能没有正确配置类路径,导致测试引擎无法找到测试类。 ### 5. 检查 IDE 配置 如果你使用的是 IDE(如 IntelliJ IDEA 或 Eclipse),确保 IDE 的测试运行配置正确。有候,IDE 可能会使用错误的测试运行器或配置,导致测试引擎无法正常工作。 ### 6. 清理和重建项目候,项目中的缓存文件可能会导致问题。尝试清理项目并重新构建,以确保所有依赖和配置都是最新的。 ### 示例代码 以下是一个简单的 JUnit 4 测试类示例: ```java import org.junit.Test; import static org.junit.Assert.assertEquals; public class ExampleTest { @Test public void testAddition() { int result = 2 + 2; assertEquals(4, result); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值