Android Studio - 使用 Junit 4.12“!!!预计 JUnit 3.8 或更高版本:”
Android Studio - with Junit 4.12 “!!! JUnit version 3.8 or later expected:”
尝试了 this post 上的建议,但我仍然收到错误:
!!! 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
问题已解决。我在 运行 Android Studio
中将 JUnit 测试作为标准 "JUnit test"。我通过将配置重置为 Android Test
.
解决了这个问题
我通过将 "testCompile 'junit:junit:4.12'" 移动到 build.gradle 依赖块中的第一个顺序来解决这个问题
运行 在自动更新项目后将旧项目打开到最新的 Android Studio 2.3 时进入此状态。
Android Studio 支持 "Android JUnit" 测试,这些测试应该 运行 使用当前主机 JRE 并正确支持 JUnit 4+。该错误是由于使用了错误的 JRE。
通过使用编辑配置 > select Android JUnit 配置 > 编辑 JRE 解决。 Select 任意选择,使用 Apply,然后将其改回 "Default (Android Platform)" 即可。
就我而言,我只是忘记了我已将构建变体更改为 "release"。切换回 "debug" 修复了所有问题。 FML.
我在将新项目添加到工作区时也遇到了类似的错误。可能是他们(新项目)升级了 Junit 版本或强制该项目应始终使用特定版本。
在这种情况下,我关闭了项目(所有)以及原始工作区并在新工作区中打开。
我设法通过简单地编辑项目的 app.iml 并从底部移动订单条目来解决它:
<orderEntry type="library" exported="" scope="TEST" name="junit-4.12" level="project" />
下面的修复是一个临时解决方案,是您需要对您创建的每个新 class 执行的重复性任务。我在 Android Studio 上的项目中使用了 Gradle。
第一步:
转到 运行-> 编辑配置
Option
第 2 步:
对于每个 JUnit 测试配置,更改以下内容并将其添加到字段中:
a) JRE:默认为 selected。将其更改为您在 PC 上拥有的 JRE 版本,您可以在下拉列表中找到该版本。截至今天,它的 1.8
b) 在启动字段之前:单击“+”,select 您的模块并将任务添加为 "clean compileTestJava"。将其移至列表顶部
JUnit test configuration
第 3 步:应用更改,现在 运行 您的 java class。
运行 "Android JUNit" 配置和 gradle 中的 JUnit 4.12 无助于解决此问题。
我需要在 运行 配置中手动 select JRE
到 Android API 27 Platform
而不是 "Default" 来解决问题。
为了解决这个问题,我将 "JRE" 设置为“1.8”。这是在 "Edit Configurations"
下
我遇到了同样的错误,我通过在 Android Studio 中更新 "Edit Configurations..." 下的 JRE 值来修复它,我改用 API 28 然后它起作用了。请查看图片以供参考...
我必须根据 these instructions 更新 Gradle 设置文件。我刚刚添加了行
testImplementation 'junit:junit:4.12'
到我的应用 build.gradle
文件的 dependencies
块。如果您在 Android studio 中查看 "Project" 选项卡(您可以在其中查看源代码文件),应该会有一个 "Gradle Scripts" 部分。查找以您的包命名的 build.gradle
文件并将该行添加到 dependencies
块,然后单击应该出现的 "Sync now" 提示。
再补充一种情况。在使用旧 AGP (3.3.2) 和 Gradle (4.10.2) 的项目上将 Android Studio 更新到 4.1 后,我遇到了这个错误。最终为我解决问题的是从 gradle 依赖项中删除 android.test.runner
库,即从应用程序模块 build.gradle
:
中删除以下行
useLibrary 'android.test.runner'
我可能很幸运,实际上不需要图书馆为单元测试或仪器测试提供的任何 类。
如果您已使用最新的 gradle 插件将 android 工作室版本更新到 4.1。请评论
// 使用库 'android.test.runner'
它将为您修复错误。
这显然是 Android Studio 4.1 的问题。已经有一张公开票:https://issuetracker.google.com/issues/170328018
真正为我解决问题的是重新安装 Android 11 (API 30) SDK,根据上面的错误单:
"...there was an issue with API 30 mock jar that was built
incorrectly. Can you open Android Studio SDK Manager and try
uninstalling the R SDK or any Android SDK Platform 30 please? The
Gradle build will auto install it when you try to rebuild after you
delete the R SDK."
就我而言,问题在于导入,
应该是:
import org.junit.Assert.assertEquals
尝试了 this post 上的建议,但我仍然收到错误:
!!! 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
问题已解决。我在 运行 Android Studio
中将 JUnit 测试作为标准 "JUnit test"。我通过将配置重置为 Android Test
.
我通过将 "testCompile 'junit:junit:4.12'" 移动到 build.gradle 依赖块中的第一个顺序来解决这个问题
运行 在自动更新项目后将旧项目打开到最新的 Android Studio 2.3 时进入此状态。
Android Studio 支持 "Android JUnit" 测试,这些测试应该 运行 使用当前主机 JRE 并正确支持 JUnit 4+。该错误是由于使用了错误的 JRE。
通过使用编辑配置 > select Android JUnit 配置 > 编辑 JRE 解决。 Select 任意选择,使用 Apply,然后将其改回 "Default (Android Platform)" 即可。
就我而言,我只是忘记了我已将构建变体更改为 "release"。切换回 "debug" 修复了所有问题。 FML.
我在将新项目添加到工作区时也遇到了类似的错误。可能是他们(新项目)升级了 Junit 版本或强制该项目应始终使用特定版本。
在这种情况下,我关闭了项目(所有)以及原始工作区并在新工作区中打开。
我设法通过简单地编辑项目的 app.iml 并从底部移动订单条目来解决它:
<orderEntry type="library" exported="" scope="TEST" name="junit-4.12" level="project" />
下面的修复是一个临时解决方案,是您需要对您创建的每个新 class 执行的重复性任务。我在 Android Studio 上的项目中使用了 Gradle。
第一步: 转到 运行-> 编辑配置 Option
第 2 步: 对于每个 JUnit 测试配置,更改以下内容并将其添加到字段中: a) JRE:默认为 selected。将其更改为您在 PC 上拥有的 JRE 版本,您可以在下拉列表中找到该版本。截至今天,它的 1.8 b) 在启动字段之前:单击“+”,select 您的模块并将任务添加为 "clean compileTestJava"。将其移至列表顶部 JUnit test configuration
第 3 步:应用更改,现在 运行 您的 java class。
运行 "Android JUNit" 配置和 gradle 中的 JUnit 4.12 无助于解决此问题。
我需要在 运行 配置中手动 select JRE
到 Android API 27 Platform
而不是 "Default" 来解决问题。
为了解决这个问题,我将 "JRE" 设置为“1.8”。这是在 "Edit Configurations"
下我遇到了同样的错误,我通过在 Android Studio 中更新 "Edit Configurations..." 下的 JRE 值来修复它,我改用 API 28 然后它起作用了。请查看图片以供参考...
我必须根据 these instructions 更新 Gradle 设置文件。我刚刚添加了行
testImplementation 'junit:junit:4.12'
到我的应用 build.gradle
文件的 dependencies
块。如果您在 Android studio 中查看 "Project" 选项卡(您可以在其中查看源代码文件),应该会有一个 "Gradle Scripts" 部分。查找以您的包命名的 build.gradle
文件并将该行添加到 dependencies
块,然后单击应该出现的 "Sync now" 提示。
再补充一种情况。在使用旧 AGP (3.3.2) 和 Gradle (4.10.2) 的项目上将 Android Studio 更新到 4.1 后,我遇到了这个错误。最终为我解决问题的是从 gradle 依赖项中删除 android.test.runner
库,即从应用程序模块 build.gradle
:
useLibrary 'android.test.runner'
我可能很幸运,实际上不需要图书馆为单元测试或仪器测试提供的任何 类。
如果您已使用最新的 gradle 插件将 android 工作室版本更新到 4.1。请评论
// 使用库 'android.test.runner' 它将为您修复错误。
这显然是 Android Studio 4.1 的问题。已经有一张公开票:https://issuetracker.google.com/issues/170328018
真正为我解决问题的是重新安装 Android 11 (API 30) SDK,根据上面的错误单:
"...there was an issue with API 30 mock jar that was built incorrectly. Can you open Android Studio SDK Manager and try uninstalling the R SDK or any Android SDK Platform 30 please? The Gradle build will auto install it when you try to rebuild after you delete the R SDK."
就我而言,问题在于导入, 应该是:
import org.junit.Assert.assertEquals