解决Test running failed: Instrumentation run failed due to 'java.lang.IncompatibleClassChangeError'

Test running failed: Instrumentation run failed due to 'java.lang.IncompatibleClassChangeError' 问题解决方法

在 Android Studio执行测试(我是基于Robotium的测试)的时候报错: Test running failed: Instrumentation run failed due to 'java.lang.IncompatibleClassChangeError'


特别说明: 我的Test cases是 基于Android 4.4模拟器开发、测试的,4.4上跑都是没有任何问题,单在Android5.0,Android6.0 模拟器执行就有这个错

通过观察发现:

(1)Test running failed: Instrumentation run failed due to 'java.lang.IncompatibleClassChangeError'  这个错误貌似是 Instrumentation 运行失败是由于'java.lang.IncompatibleClassChangeError,大概推断下IncompatibleClassChangeError 应该是 不兼容的类改变错误。 貌似 还是没啥头绪, 我啥都没变啊,在 Android 4.4的模拟器上妥妥的。

(2)再看这个错误:No tests were found. 乖乖!连测试用例都没找到,难怪报错(疑问:android 4.4.4不是没有任何问题吗?),到此推断:估计Android 5.0以上的版本和4.4 确实有些兼容性的问题,也就是有(1)这个错。

解决方法:

解决No tests were found问题。

进入: Android Studio菜单栏 Run ---> Edit Configurations 如图:


发现:可能是选 All Module 问题,改成后边三个任一个,然后选择相应的PackageClassMethod 保存后,发现都运行正常。


至此 问题解决!




`java.lang.IllegalStateException: No instrumentation registered! Must run under a registering instrumentation.` 错误通常在 Android 测试中出现,表明测试没有在正确的仪器环境下运行。以下是一些解决方法: ### 检查测试注解 确保测试类使用了正确的测试运行器注解。对于 Android 测试,通常需要使用 `@RunWith(AndroidJUnit4.class)` 注解。示例代码如下: ```java import androidx.test.ext.junit.runners.AndroidJUnit4; import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) public class ExampleInstrumentedTest { // 测试方法 } ``` ### 检查测试依赖 确保项目中包含了必要的测试依赖。在 `build.gradle` 文件中,需要添加以下依赖: ```groovy androidTestImplementation 'androidx.test:runner:1.4.0' androidTestImplementation 'androidx.test.ext:junit:1.1.5' ``` ### 检查测试配置 确保测试配置正确,测试应该在 `androidTest` 源集中编写,而不是 `test` 源集。`androidTest` 源集用于编写需要在设备或模拟器上运行的仪器化测试,而 `test` 源集用于编写本地单元测试。 ### 检查运行配置 在 Android Studio 中,确保使用正确的运行配置来运行测试。应该选择 Android Instrumented Tests 配置,而不是 Local Unit Tests 配置。 ### 清理和重建项目 有时候,项目的构建缓存可能会导致问题。可以尝试清理项目并重新构建: - 在 Android Studio 中,选择 `Build` -> `Clean Project`,然后选择 `Build` -> `Rebuild Project`。 ### 检查 Gradle 同步 确保 Gradle 同步成功,没有错误或警告。可以通过点击 Android Studio 工具栏中的 `Sync Now` 按钮来同步 Gradle。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值