【问题标题】:Android Studio - with Junit 4.12 “!!! JUnit version 3.8 or later expected:”Android Studio - 使用 Junit 4.12 “!!!预计 JUnit 版本 3.8 或更高版本:”
【发布时间】: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来解决它,检查:stackoverflow.com/a/44820309/965569

标签: java android android-studio junit


【解决方案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 无助于解决此问题。

              我需要在运行配置中手动选择 JREAndroid 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
                      

                      【讨论】:

                        猜你喜欢
                        • 2018-03-24
                        • 1970-01-01
                        • 2015-11-07
                        • 1970-01-01
                        • 2011-01-26
                        • 1970-01-01
                        • 2017-10-08
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多