После переноса кода и тестов в AndroidX все, кажется, работает довольно хорошо, однако тесты робоблокового джунита для двух фрагментов не выполняются из-за NoClassDefFoundError: androidx / фрагмент / testing / R $ стиля исключение.
Трассировка стека:
java.lang.NoClassDefFoundError: стиль androidx / фрагмент / тестирование / R $ в
androidx.fragment.app.testing.FragmentScenario $ EmptyFragmentActivity.onCreate (FragmentScenario.java:79)
на android.app.Activity.performCreate (Activity.java:5933) на
android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1105)
в
androidx.test.runner.MonitoringInstrumentation.callActivityOnCreate (MonitoringInstrumentation.java:674)
в
org.robolectric.android.controller.ActivityController.lambda $ создать $ 0 (ActivityController.java:69)
в
org.robolectric.shadows.ShadowLooper.runPaused (ShadowLooper.java:365)
в
org.robolectric.android.controller.ActivityController.create (ActivityController.java:69)
в
org.robolectric.android.controller.ActivityController.create (ActivityController.java:74)
в
org.robolectric.android.internal.LocalActivityInvoker.startActivity (LocalActivityInvoker.java:39)
в
androidx.test.core.app.ActivityScenario.launch (ActivityScenario.java:207)
в
androidx.fragment.app.testing.FragmentScenario.internalLaunch (FragmentScenario.java:283)
в
androidx.fragment.app.testing.FragmentScenario.launchInContainer (FragmentScenario.java:265)
Для тестирования фрагментов я использую FragmentScenario, и, похоже, FragmentScenario.EmptyFragmentActivity ссылается на отсутствующий класс R из пакета androidx.fragment.testing.R:
setTheme (getIntent (). GetIntExtra (THEME_EXTRAS_BUNDLE_KEY,
R.style.FragmentScenarioEmptyFragmentActivityTheme));
Есть идеи, что может быть не так? Может быть, мне не хватает зависимости, которая не так очевидна для меня.
Воспроизводится в следующем проекте:
https://github.com/marcinbak/androidx-test-error
Также сообщается в трекере проблем Google: https://issuetracker.google.com/issues/122321150