Robolectric - Paket targetSdkVersion = 30> maxSdkVersion = 29

Sep 04 2020

Kesalahan:

java.lang.IllegalArgumentException: gagal dikonfigurasi: Package targetSdkVersion = 30> maxSdkVersion = 29

di org.robolectric.RobolectricTestRunner.getChildren (RobolectricTestRunner.java:247) di org.junit.runners.ParentRunner.getFilteredChildren (ParentRunner.java:534) di org.junit.runners.ParentRunner.getDescription.j (ParentRun:534) at org.junit.runners.ParentRunner.getDescription.j (ParentRun:534) androidx.test.ext.junit.runners.AndroidJUnit4.getDescription (AndroidJUnit4.java:149) di org.junit.runners.model.RunnerBuilder.configureRunner (RunnerBuilder.java:81) di org.junit.runners.model.RunnerBuilder. safeRunnerForClass (RunnerBuilder.java:72) di org.junit.internal.builders.AllDefaultPosabilitiesBuilder.runnerForClass (AllDefaultPosilitiesBuilder.java:37) di org.junit.runners.model.RunnerBuilder.safeRunnerForClasser (RunnerBuilder.safeRunnerForClasser.java:70) .internal.requests.ClassRequest.createRunner (ClassRequest.java:28) di org.junit.internal.requests.MemoizingRequest.getRunner (MemoizingRequest.java:19) di com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs (JUnit4IdeaTestRunner.java:50) di com.intellij.rt.junit.IdeaTestRunner $ Repeater.startRunnerWithArgs (JUnit4IdeaTestRunner.java:50) di com.intellij.rt.junit.IdeaTestRunner $ Repeater.startRunnerWithArgs java: 220) di com.intellij.rt.junit.JUnitStarter.main (JUnitStarter.java:53) Disebabkan oleh: java.lang.IllegalArgumentException: Package targetSdkVersion = 30> maxSdkVersion = 29 di org.robolectric.plugins.DefaultSdkPicker.configuredSdks (DefaultSdkPicker.java:118) di org.robolectric.plugins.DefaultSdkPicker.selectSdks (DefaultSdkPicker.java:69) di org.robolectric.RobolectricTestRunner.getChildren (RobolectricTestRunner.java:213) ... 13 lainnya33) di com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart (JUnitStarter.java:220) di com.intellij.rt.junit.JUnitStarter.main (JUnitStarter.java:53) Disebabkan oleh: java.lang.IllegalArgumentException: Package targetSdkVersion = 30> maxSdkVersion = 29 di org.robolectric.plugins.DefaultSdkPicker.configuredSdks (DefaultSdkPicker.java:118) di org.robolectric.plugins.DefaultSdkPicker.selectSdks (DefaultSdkPicker.java:69) di org.robolectric.Chestild RobolectricTestRunner.java:213) ... 13 lainnya33) di com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart (JUnitStarter.java:220) di com.intellij.rt.junit.JUnitStarter.main (JUnitStarter.java:53) Disebabkan oleh: java.lang.IllegalArgumentException: Package targetSdkVersion = 30> maxSdkVersion = 29 di org.robolectric.plugins.DefaultSdkPicker.configuredSdks (DefaultSdkPicker.java:118) di org.robolectric.plugins.DefaultSdkPicker.selectSdks (DefaultSdkPicker.java:69) di org.robolectric.Chestild RobolectricTestRunner.java:213) ... 13 lainnyarobolectric.plugins.DefaultSdkPicker.selectSdks (DefaultSdkPicker.java:69) di org.robolectric.RobolectricTestRunner.getChildren (RobolectricTestRunner.java:213) ... 13 lainnyarobolectric.plugins.DefaultSdkPicker.selectSdks (DefaultSdkPicker.java:69) di org.robolectric.RobolectricTestRunner.getChildren (RobolectricTestRunner.java:213) ... 13 lainnya

Bagaimana cara memperbaiki masalah ini?

Jawaban

13 Abhimanyu Sep 04 2020 at 14:58

Menemukan posting ini dengan masalah yang sama, dengan pesan kesalahan yang berbeda.
Jawaban ini membantu saya mengatasi masalah tersebut.

Posting yang sama di sini.

Buat robolectric.propertiesfile di dalam app/src/test/resourcesdirektori dengan baris berikut:

sdk=29  

Ini akan memaksa Robolectric untuk menggunakan API 29, bukan 30.

Catatan: Robolectric sekarang mendukung hingga SDK 29 (Mulai 4 Sep 2020).

6 Mahdi-Malv Oct 29 2020 at 05:23

Anda juga dapat membatasi SDK target pengujian Anda menggunakan Configanotasi. Ini membuat Anda mempertimbangkan konfigurasi yang berbeda untuk pengujian yang berbeda atau menghindari pembuatan file konfigurasi tambahan.

@Config(sdk = [29])
class Test {
 // ...
}