Reputation: 2809
Tried out the suggestions on this post, but I still get the error:
!!! 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
Not sure what to do from here. Tried reorganizing the order of the Junit dependency. No luck, anyone else get this issue?
Android Studio V. 1.2.1.1
Upvotes: 55
Views: 33045
Reputation: 1
In my case, the problem was the import, it should be :
import org.junit.Assert.assertEquals
Upvotes: 0
Reputation: 882
This is apparently an Android Studio 4.1 issue. There's an open ticket for that already: https://issuetracker.google.com/issues/170328018
What really solved the issue for me was reinstalling the Android 11 (API 30) SDK, according to the bug ticket above:
"...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."
Upvotes: 7
Reputation: 111
If you have updated android studio version to 4.1 wiuth latest gradle plygin. Please comment out
// useLibrary 'android.test.runner' It will fix error for you.
Upvotes: 7
Reputation: 1346
Just to add one more situation. I was having this error after updating Android Studio to 4.1 on a project using old AGP (3.3.2) and Gradle (4.10.2). What ended up solving the issue for me was removing the android.test.runner
library from gradle dependencies, that is removing the following line from the app's module build.gradle
:
useLibrary 'android.test.runner'
I probably got lucky to not actually need any of the classes provided by the library for unit or instrumented tests.
Upvotes: 29
Reputation: 5995
I had to update a Gradle settings file according to these instructions. I just added the line
testImplementation 'junit:junit:4.12'
to the dependencies
block of my app's build.gradle
file. If you check the "Project" tab in Android studio (where you can see your source code files) there should be a "Gradle Scripts" section. Look for the build.gradle
file named after your package and add that line to the dependencies
block, then click the "Sync now" prompt that should come up.
Upvotes: 1
Reputation: 3681
I was having the same error and I fixed it by updating JRE value under "Edit Configurations..." in Android Studio, I used API 28 instead and then it worked. Please check the image for your reference...
Upvotes: 2
Reputation: 2086
To solve this issue, I set "JRE" to "1.8". This is Under "Edit Configurations"
Upvotes: 2
Reputation: 877
Running an "Android JUNit" config and having JUnit 4.12 in gradle did not help to resolve this.
I needed to select JRE
to Android API 27 Platform
in the run config manually instead of "Default" to resolve the issue.
Upvotes: 1
Reputation: 51
The below fix is a work around and a repetitive task you need to perform on every new class that you create. I have used Gradle for my project on Android Studio.
Step 1: Go to Run-> Edit Configurations Option
Step 2: For each JUnit test configuration, change and add the below into the fields: a) JRE: Default is selected. Change it to the JRE version you have on your PC which you get as an option in the drop-down. As of today, its 1.8 b) Before launch field: Click on '+', select your module and add task as "clean compileTestJava". Move it to top in the list JUnit test configuration
Step 3: Apply Changes and now run your java class.
Upvotes: 5
Reputation: 6422
I've managed to solve it with simply editing the project's app.iml and moving order entry after from bottom:
<orderEntry type="library" exported="" scope="TEST" name="junit-4.12" level="project" />
Upvotes: 0
Reputation: 81
I was also getting similar error when I added new project to workspace. May be they(new Project) would have upgraded Junit version or manadated that project should always use specific version.
In this cases, I closed project(all) along with original workspace and opened in new one.
Upvotes: 0
Reputation: 12308
In my case I just forgot that I've changed the build variant to "release". Switching back to "debug" fixed everything. FML.
Upvotes: 1
Reputation: 3033
Running into this when opening an old project into latest Android Studio 2.3 after it auto-updated the project.
Android Studio supports "Android JUnit" tests which should run using the current host JRE and properly support JUnit 4+. The error is due to the wrong JRE being used.
Solved by using Edit Configuration > select the Android JUnit configuration > edit the JRE. Select any choice, use Apply, then change it back to "Default (Android Platform)" for it work.
Upvotes: 5
Reputation: 71
I solve this problem by moving "testCompile 'junit:junit:4.12'" to the first order in build.gradle dependency block
Upvotes: 7
Reputation: 2809
Solved the issue. I was running the JUnit tests as a standard "JUnit test" in Android Studio
. I fixed the issue by resetting the configuration as a Android Test
.
Upvotes: 40