Android Studio - 使用 Junit 4.12 “!!!预计 JUnit 版本 3.8 或更高版本:”
Posted
技术标签:
【中文标题】Android Studio - 使用 Junit 4.12 “!!!预计 JUnit 版本 3.8 或更高版本:”【英文标题】:Android Studio - with Junit 4.12 “!!! JUnit version 3.8 or later expected:” 【发布时间】:2015-08-18 04:58:29 【问题描述】:尝试了this帖子上的建议,但我仍然收到错误:
!!! JUnit version 3.8 or later expected:
java.lang.RuntimeException: Stub!
at junit.runner.BaseTestRunner.<init>(BaseTestRunner.java:5)
at junit.textui.TestRunner.<init>(TestRunner.java:54)
at junit.textui.TestRunner.<init>(TestRunner.java:48)
at junit.textui.TestRunner.<init>(TestRunner.java:41)
Process finished with exit code -3
不知道从这里做什么。尝试重新组织 Junit 依赖项的顺序。不走运,还有其他人遇到这个问题吗?
android Studio V. 1.2.1.1
【问题讨论】:
嘿,你找到解决这个问题的方法了吗?我也遇到了。 我可以通过删除unitTest.returnDefaultValues
来解决它,检查:***.com/a/44820309/965569
【参考方案1】:
解决了这个问题。我在Android Studio
中将JUnit 测试作为标准的“JUnit 测试”运行。我通过将配置重置为Android Test
解决了这个问题。
【讨论】:
这对我有用,但花了一点时间才弄清楚如何创建Android Test
。进入Edit Configurations
,在左侧菜单中选择Android Tests
,点击+
,右侧填写详细信息。
如果您想将测试作为标准 Junit 测试运行,请确保您在 android studio 中的构建变体设置为单元测试,然后创建一个 Junit 测试配置。【参考方案2】:
只是增加一种情况。在使用旧 AGP (3.3.2) 和 Gradle (4.10.2) 的项目上将 Android Studio 更新到 4.1 后,我遇到了这个错误。最终为我解决的问题是从 gradle 依赖项中删除 android.test.runner
库,即从应用程序的模块 build.gradle
中删除以下行:
useLibrary 'android.test.runner'
我可能很幸运,实际上不需要库提供的任何类来进行单元测试或仪器测试。
【讨论】:
这也为我解决了这个问题。谢谢! 更新到 Android Studio 4.1 后这对我也有用!非常感谢你发布这个!你为我节省了几个小时的调试时间。干杯 也为我在 Android Studio 4.1 上修复了它!非常感谢! :-) 在 Android Studio 4.1 上修复了它 还必须删除useLibrary 'android.test.base'
和 useLibrary 'android.test.mock'
- 谢谢!【参考方案3】:
我通过将 "testCompile 'junit:junit:4.12'" 移动到 build.gradle 依赖块中的第一个顺序来解决这个问题
【讨论】:
【参考方案4】:如果您已使用最新的 gradle plygin 将 android studio 版本更新到 4.1。请注释掉
// useLibrary 'android.test.runner' 它将为您修复错误。
【讨论】:
【参考方案5】:这显然是 Android Studio 4.1 的问题。已经有一张公开的票:https://issuetracker.google.com/issues/170328018
根据上面的错误单,真正为我解决问题的是重新安装 Android 11 (API 30) SDK:
"...构建的 API 30 模拟 jar 存在问题 不正确。您可以打开 Android Studio SDK Manager 并尝试 请卸载 R SDK 或任何 Android SDK Platform 30?这 当您尝试重建后,Gradle build 将自动安装它 删除 R SDK。”
【讨论】:
【参考方案6】:在自动更新项目后将旧项目打开到最新的 Android Studio 2.3 时遇到此问题。
Android Studio 支持“Android JUnit”测试,该测试应使用当前主机 JRE 运行并正确支持 JUnit 4+。该错误是由于使用了错误的 JRE。
通过使用编辑配置解决>选择Android JUnit配置>编辑JRE。选择任何选项,使用 Apply,然后将其更改回“默认(Android 平台)”以使其正常工作。
【讨论】:
【参考方案7】:以下修复是您需要在您创建的每个新课程上执行的变通和重复任务。我在 Android Studio 上的项目中使用了 Gradle。
第 1 步: 转到运行-> 编辑配置 Option
第 2 步: 对于每个 JUnit 测试配置,更改以下内容并将其添加到字段中: a) JRE:选择默认值。将其更改为您 PC 上的 JRE 版本,您可以在下拉列表中选择该版本。到今天为止,它的 1.8 b)在启动字段之前:单击“+”,选择您的模块并将任务添加为“clean compileTestJava”。将其移至列表顶部 JUnit test configuration
第 3 步:应用更改并现在运行您的 java 类。
【讨论】:
【参考方案8】:我遇到了同样的错误,我通过在 Android Studio 中的“编辑配置...”下更新 JRE 值来修复它,我改用 API 28,然后它工作了。请检查图片以供参考...
【讨论】:
先生,您是一位学者,一位绅士!!谢谢 - 你的固定工作。 我很高兴,最好的问候!【参考方案9】:就我而言,我只是忘记了我已将构建变体更改为“发布”。切换回“调试”修复了一切。 FML。
【讨论】:
【参考方案10】:运行“Android JUNit”配置并在 gradle 中使用 JUnit 4.12 无助于解决此问题。
我需要在运行配置中手动选择 JRE
到 Android API 27 Platform
而不是“默认”来解决问题。
【讨论】:
【参考方案11】:为了解决这个问题,我将“JRE”设置为“1.8”。这是在“编辑配置”下
【讨论】:
这对我有用,在使用 Robolectric 进行单元测试时。【参考方案12】:我必须根据these instructions 更新 Gradle 设置文件。我刚刚添加了一行
testImplementation 'junit:junit:4.12'
到我的应用程序的build.gradle
文件的dependencies
块。如果您检查 Android Studio 中的“项目”选项卡(您可以在其中查看源代码文件),则应该有一个“Gradle 脚本”部分。查找以您的包命名的 build.gradle
文件并将该行添加到 dependencies
块中,然后单击应该出现的“立即同步”提示。
【讨论】:
【参考方案13】:当我将新项目添加到工作区时,我也遇到了类似的错误。可能他们(新项目)会升级 Junit 版本或强制该项目应始终使用特定版本。
在这种情况下,我关闭了项目(全部)以及原始工作区并在新工作区中打开。
【讨论】:
【参考方案14】:我已经设法通过简单地编辑项目的 app.iml 并从底部移动订单条目来解决它:
<orderEntry type="library" exported="" scope="TEST" name="junit-4.12" level="project" />
【讨论】:
【参考方案15】:就我而言,问题在于导入, 应该是:
import org.junit.Assert.assertEquals
【讨论】:
以上是关于Android Studio - 使用 Junit 4.12 “!!!预计 JUnit 版本 3.8 或更高版本:”的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio - Junit 4 - 在所有测试之前运行代码
使用基于 Gradle 的配置时在 Android Studio (IntelliJ) 上运行简单的 JUnit 测试
在Android Studio进行“简单配置”单元测试(Android Junit)
错误记录Android Studio 编译时 lint 检查报错 ( Could not resolve junit:junit:4.+. )