I\'m trying to add loginfacebook for my app. But when I added a repository that is need in doing this. It caused an error. The AndroidJUnit4 cannot resolve now.
In addition to the above answer please ensure you follow these steps strictly:
I was banging my head against the wall and/or any object i see in front of me in order to make my SQLite function unit tested. No matter what I do, how strictly follow the suggestions provided my many wise people all over the internet did not work.
I then had to go to preschool and start over to realize my stupid mistake. I learned that AndroidJUnit4 can only be used with Instrumentation Test and JUnit must be used for local tests. That being said, the folder must be src/androidTest/java. I had my test class directly under androidTest folder, hence I had to face that nasty error. However, the moment I moved it under src/androidTest/java everything went very clear like "I can see clearly now the rain is gone".
Take a look at this article which says...
Run Instrumented Unit Tests To run your instrumented tests, follow these steps:
Be sure your project is synchronized with Gradle by clicking Sync Project in the toolbar. Run your test in one of the following ways: To run a single test, open the Project window, and then right-click a test and click Run . To test all methods in a class, right-click a class or method in the test file and click Run . To run all tests in a directory, right-click on the directory and select Run tests . The Android Plugin for Gradle compiles the instrumented test code located in the default directory (src/androidTest/java/), builds a test APK and production APK, installs both APKs on the connected device or emulator, and runs the tests. Android Studio then displays the results of the instrumented test execution in the Run window.
Therefore folks, for instrumentation test the folder must be (do not forget the case)
src/androidTest/java
and for local tests the folder must be
src/test/java
You can then have your package folder(s) to match your app package
Hope, this helps for the community!
Please try the latest API like following
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-ore:3.0.2'
still, No luck then try "implementation" instead of testImplementation, androidTestImplementation and androidTestImplementation and sync in Gradle.
Just add compile "com.android.support.test:runner:1.0.1"
to your Gradle.
For me it was because some of the androidTestImplementation
imports were not up to date in build.gradle. After I updated them all to the newest version, the error was gone.
Note:
My project had multiple modules and I had to update them in every module.
the solution that worked for me is changing the emulator (one that uses the api you are using) To do that click on the symbol of the emulatr next to the Run button (ex : Pixel 2) then go down to Open AVD Manager (add the api u need (ex API 29)) Thats all
Another important thing (that has surfaced this issue for me) is to check if you have changed the build type for tests - that would be the testBuildType
option in your module's build.gradle
.
If you did change it (like I have), then before editing any Android tests:
testBuildType
Gradle propertyTo run the app normally again, you would obviously need to switch back to 'debug' I suppose.
Note: Even though this fixes my core issue as described by the question here, I'm still looking for a way to support both custom build types for Android tests, but also allow debug build types; my ultimate goal is to have CI running the tests with a special build type, but let developers run them in 'debug' mode. So if anyone has an idea on how to accomplish that, the comments section is yours. :)