Robolectric - Paket targetSdkVersion = 30> maxSdkVersion = 29
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
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).
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 {
// ...
}