Unable to start instrumentation testing for app in Android studio

55 views Asked by At

We are trying to implement instrumentation testing for an Android app. While starting testing for app module we getting below exception.

java.lang.NoSuchMethodError: No virtual method getDeclaringClass()Ljava/lang/Class; in class Lorg/junit/runners/model/FrameworkMethod; or its super classes (declaration of 'org.junit.runners.model.FrameworkMethod' appears in /data/app/~~klRDKQ7A7CveMJYQuTzJKQ==/com.test.example-qLX_TtubaoWb603G_hnBnw==/base.apk!classes32.dex)
at androidx.test.internal.runner.junit4.statement.UiThreadStatement.classHasAnnotation(UiThreadStatement.java:98)
at androidx.test.internal.runner.junit4.statement.UiThreadStatement.hasAnnotation(UiThreadStatement.java:93)
at androidx.test.internal.runner.junit4.statement.UiThreadStatement.shouldRunOnUiThread(UiThreadStatement.java:74)
at androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner.methodInvoker(AndroidJUnit4ClassRunner.java:61)
at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:251)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at androidx.test.ext.junit.runners.AndroidJUnit4.run(AndroidJUnit4.java:162)
at org.junit.runners.Suite.runChild(Suite.java:127)
at org.junit.runners.Suite.runChild(Suite.java:26)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at org.junit.runner.JUnitCore.run(JUnitCore.java:138)
at androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:67)
at androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:58)
at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:446)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2335)

Gradle config:

  • Added testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" in defaultconfig block
  • Using below dependencies in gradle
    def androidx_core_test_version = "1.5.0"
    def test_runner_version = "1.5.2"
    def junit_version = "4.13.2"
    def junit_ext_version = "1.1.5"
    def espresso_version = "3.5.1"



    testImplementation "androidx.multidex:multidex:2.0.1"
    androidTestImplementation "androidx.test:core:$androidx_core_test_version"
    androidTestImplementation "androidx.test.ext:junit:$junit_ext_version"
    androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version"
    androidTestImplementation "androidx.test:runner:$test_runner_version"

Tried with multiple different version of testing dependencies, still getting same exception.

Could anyone help to resolve this issue to start instrumentation testing in Android studio ( Flamingo | 2022.2.1 ) ? Thanks

0

There are 0 answers