Android Studio - 使用Junit 4.12“!!! JUnit 3.8或更高版本预期:“

时间:2015-06-03 19:48:02

标签: java android android-studio junit

尝试了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

15 个答案:

答案 0 :(得分:35)

解决了这个问题。我正在运行JUnit测试作为标准&#34; JUnit测试&#34;在Android Studio。我通过将配置重置为Android Test来修复此问题。

答案 1 :(得分:25)

只需再添加一种情况。在使用旧的AGP(3.3.2)和Gradle(4.10.2)的项目上将Android Studio更新到4.1之后,出现了此错误。最终为我解决了这个问题的是从gradle依赖项中删除了android.test.runner库,也就是从应用程序的模块build.gradle中删除了以下行:

useLibrary 'android.test.runner'

我可能很幸运,实际上并不需要库提供的用于单元测试或仪器测试的任何类。

答案 2 :(得分:7)

我通过将“testCompile'junit:junit:4.12'”移动到build.gradle依赖块中的第一个顺序来解决这个问题

答案 3 :(得分:5)

在自动更新项目后,将旧项目打开到最新的Android Studio 2.3中时,请执行此操作。

Android Studio支持&#34; Android JUnit&#34;应使用当前主机JRE运行并正确支持JUnit 4+的测试。该错误是由于使用了错误的JRE。

使用编辑配置解决&gt;选择Android JUnit配置&gt;编辑JRE。选择任何选项,使用Apply,然后将其更改回&#34;默认(Android平台)&#34;为了它的工作。

答案 4 :(得分:5)

如果您已将最新的gradle plygin更新为Android Studio版本至4.1。请注释掉

// useLibrary'android.test.runner' 它将为您解决错误。

答案 5 :(得分:4)

这显然是一个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构建会自动安装它 删除R SDK。“

答案 6 :(得分:2)

以下修复是您需要在您创建的每个新类上执行的解决方法和重复性任务。我在Android Studio上使用Gradle作为我的项目。

第1步: 转到Run-&gt;编辑配置 Option

第2步: 对于每个JUnit测试配置,请更改以下字段并将其添加到字段中: a)JRE:选择默认值。将其更改为PC上的JRE版本,您可以在下拉列表中选择该版本。截至今日,其1.8 b)在启动字段之前:单击&#39; +&#39;,选择您的模块并将任务添加为&#34;清理compileTestJava&#34;。将其移至列表顶部 JUnit test configuration

步骤3:应用更改,现在运行您的java类。

答案 7 :(得分:2)

我遇到了同样的错误,我通过更新Android Studio中“编辑配置...”下的JRE值来解决它,我改用API 28,然后它起作用了。请检查图片以供参考...

enter image description here

答案 8 :(得分:1)

在我的情况下,我忘记了我已将构建变体更改为“release”。切换回“调试”修复了一切。 FML。

答案 9 :(得分:1)

运行&#34; Android JUNit&#34;配置并在gradle中使用JUnit 4.12无助于解决此问题。

我需要在运行配置中手动选择JREAndroid API 27 Platform,而不是&#34;默认&#34;解决问题。

答案 10 :(得分:0)

当我将新项目添加到工作区时,我也遇到了类似的错误。可能是他们(新项目)将升级Junit版本或manadated该项目应始终使用特定版本。

在这种情况下,我将项目(全部)与原始工作区一起关闭,并在新工作区中打开。

答案 11 :(得分:0)

我设法通过简单地编辑项目的app.iml并从底部移动订单输入来解决它:

<orderEntry type="library" exported="" scope="TEST" name="junit-4.12" level="project" />

答案 12 :(得分:0)

要解决此问题,我将“JRE”设置为“1.8”。这是在“编辑配置”

答案 13 :(得分:0)

我不得不根据these instructions更新Gradle设置文件。我刚刚添加了行

testImplementation 'junit:junit:4.12'

到我应用的dependencies文件的build.gradle块中。如果您在Android Studio中选中“项目”标签(可以在其中查看源代码文件),则应该有一个“ Gradle Scripts”部分。查找以您的软件包命名的build.gradle文件,并将该行添加到dependencies块中,然后单击出现的“立即同步”提示。

答案 14 :(得分:0)

就我而言,问题在于导入, 应该是:

import org.junit.Assert.assertEquals