当我运行 JUnit 测试时,它抛出以下错误:
java.lang.IllegalAccessError:试图从类 org.robolectric.RobolectricTestRunner$1 访问字段 org.robolectric.annotation.Config$Builder.sdk
RobolectricTestRunner.java(3.6.1)
截图中的代码在robolectric-3.6.1-resources.jar
环境:
- JUnit:4.12
- 机器人电子 3.6.1
- Android Gradle 插件:2.3.3
- 安卓工作室:3.0.1
- 操作系统:MacOS 10.13.2
谁能帮帮我?谢谢
最佳答案
我终于明白是怎么回事了。在 app/build.gradle
中,我有以下依赖项:
testCompile 'junit:junit:4.12'
testCompile 'org.assertj:assertj-core:2.6.0'
testCompile 'org.robolectric:robolectric:3.6.1'
testCompile 'org.robolectric:shadows-multidex:3.2.2'
我在 3.2.2 版中有 shadows-multidex
依赖项,它有 org.robolectric:robolectric-annotations:3.2.2
内部。所以,我将shadow-multidex
的版本改为3.6.1作为robolectric版本后,一切正常!
关于使用 Robolectric 3.6.1 时出现 java.lang.IllegalAccessError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48026840/