Robolectric - Paket targetSdkVersion = 30> maxSdkVersion = 29
Hata:
java.lang.IllegalArgumentException: yapılandırılamadı: Paket targetSdkVersion = 30> maxSdkVersion = 29
org.robolectric.RobolectricTestRunner.getChildren (RobolectricTestRunner.java:247) at org.junit.runners.ParentRunner.getFilteredChildren (ParentRunner.java:534), org.junit.runners.ParentRunner.getDescription adresinde androidx.test.ext.junit.runners.AndroidJUnit4.getDescription (AndroidJUnit4.java:149), org.junit.runners.model.RunnerBuilder.configureRunner'da (RunnerBuilder.java:81) org.junit.runners.model.RunnerBuilder'da. safeRunnerForClass (RunnerBuilder.java:72), org.junit.internal.builders.AllDefaultPossilitiesBuilder.runnerForClass'da (AllDefaultPossilitiesBuilder.java:37) org.junit.runners.model.RunnerBuilder.safeRunnerFor.java70:70 at RunnerBuilder.safeRunnerFor.java (RunnerBuilder.safeRunnerFor.java70) adresinde .internal.requests.ClassRequest.createRunner (ClassRequest.java:28), org.junit.internal.requests.MemoizingRequest.getRunner adresinde (MemoizingRequest.java:19) com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs (JUnit4IdeaTestRunner.java:50) com.intellij.rt.junit.IdeaTestRunner $ Repeater.startRunnerWithArgs (IdeaTestRunner.java:33) java: 220) com.intellij.rt.junit.JUnitStarter.main adresinde (JUnitStarter.java:53) Neden olduğu: java.lang.IllegalArgumentException: Paket targetSdkVersion = 30> maxSdkVersion = 29, org.robolectric.plugins.DefaultSdkPicker.configured adresinde (DefaultSdkPicker.java:118) org.robolectric.plugins.DefaultSdkPicker.selectSdks (DefaultSdkPicker.java:69) at org.robolectric.RobolectricTestRunner.getChildren (RobolectricTestRunner.java:213) ... 13 daha fazla33) com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart (JUnitStarter.java:220) at com.intellij.rt.junit.JUnitStarter.main (JUnitStarter.java:53) Neden olduğu: java.lang.IllegalArgumentException: Package targetSdkVersion = 30> maxSdkVersion = 29, org.robolectric.plugins.DefaultSdkPicker.configuredSdks'de (DefaultSdkPicker.java:118) org.robolectric.plugins.DefaultSdkPicker.selectSdks'de (DefaultSdkPicker.javactren.Robolectrenctrenctric.robolectricner. RobolectricTestRunner.java:213) ... 13 daha fazla33) com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart (JUnitStarter.java:220) at com.intellij.rt.junit.JUnitStarter.main (JUnitStarter.java:53) Neden olduğu: java.lang.IllegalArgumentException: Package targetSdkVersion = 30> maxSdkVersion = 29, org.robolectric.plugins.DefaultSdkPicker.configuredSdks'de (DefaultSdkPicker.java:118) org.robolectric.plugins.DefaultSdkPicker.selectSdks'de (DefaultSdkPicker.javactren. RobolectricTestRunner.java:213) ... 13 daha fazlarobolectric.plugins.DefaultSdkPicker.selectSdks (DefaultSdkPicker.java:69) at org.robolectric.RobolectricTestRunner.getChildren (RobolectricTestRunner.java:213) ... 13 daha fazlarobolectric.plugins.DefaultSdkPicker.selectSdks (DefaultSdkPicker.java:69) at org.robolectric.RobolectricTestRunner.getChildren (RobolectricTestRunner.java:213) ... 13 daha fazla
Bu sorunu nasıl çözebilirim?
Yanıtlar
Bu gönderiyi aynı sorunla, farklı bir hata mesajıyla buldum.
Bu cevap sorunu çözmeme yardımcı oldu.
Aynısını burada yayınlamak.
Aşağıdaki satırla dizinin robolectric.propertiesiçinde bir dosya oluşturun app/src/test/resources:
sdk=29
Bu, Robolectric'i 30 yerine API 29 kullanmaya zorlayacaktır.
Not: Robolectric şu anda 29'a kadar SDK'yı desteklemektedir (4 Eylül 2020'de olduğu gibi).
ConfigEk açıklama kullanarak test hedefi SDK'nızı da sınırlayabilirsiniz . Bu, farklı testler için farklı yapılandırmaları dikkate almanıza veya fazladan yapılandırma dosyaları oluşturmaktan kaçınmanıza neden olur.
@Config(sdk = [29])
class Test {
// ...
}