Robolectric: ошибка android.content.res.Resources $ NotFoundException - PullRequest
0 голосов
/ 09 января 2019

Ошибка при вызове buildActivity () Robolectric. Становится очевидным файл правильно, но получаю ошибку "android.content.res.Resources NotFoundException: строковый идентификатор ресурса 0x7f0b2de8 ".

Установка: Android Studio 2.3.3 на windows и robolectric-compile 'org.robolectric: robolectric: 2.4' и плагин Gradle, плагин Android 2.3.2 и GradleVersion 4.4

Попробовал параметр "android.enableAapt2 = false" в файле gradle.properties, но он бесполезен.

@RunWith(RobolectricTestRunner.class)
@Config(manifest="src/main/AndroidManifest.xml", emulateSdk = 18)
public class SignalMonitorActivityTest {
    private SignalMonitorActivity objActivity;
    private ActivityController<SignalMonitorActivity> controller;
    @Before
    public void setUp() throws Exception {
         //Robolectric.setupActivity(SignalMonitorActivity.class);    
        controller = Robolectric.buildActivity(SignalMonitorActivity.class).create();
        controller.start();
        controller.visible();
        controller.resume();
    }

Ошибка:

ВНИМАНИЕ: нет значения системных свойств для ro.build.date.utc DEBUG: Загрузка ресурсов для com.ABC.android.com_common_Configuration из . \ SRC \ главная \ разреш ...

android.content.res.Resources $ NotFoundException: строковый идентификатор ресурса

0x7f0b2de8

на android.content.res.Resources.getText (Resources.java:239) на org.robolectric.shadows.ShadowResources.getText (ShadowResources.java:363) на android.content.res.Resources.getText (Resources.java) на android.content.res.Resources.getString (Resources.java:325) в org.robolectric.shadows.ShadowContext.getString (ShadowContext.java:41) в org.robolectric.shadows.ShadowContextWrapper.getString (ShadowContextWrapper.java:96) на android.content.Context.getString (Context.java) на org.robolectric.util.ActivityController.getActivityTitle (ActivityController.java:101) в org.robolectric.util.ActivityController.attach (ActivityController.java:44) в org.robolectric.util.ActivityController $ 1.run (ActivityController.java:114) в org.robolectric.shadows.ShadowLooper.runPaused (ShadowLooper.java:268) в org.robolectric.util.ActivityController.create (ActivityController.java:111) в org.robolectric.util.ActivityController.create (ActivityController.java:122) в com.ABC.android.combine.diagnostics.SignalMonitorActivityTest.setUp (SignalMonitorActivityTest.java:29)

1 Ответ

0 голосов
/ 09 января 2019

Попробуйте добавить следующее в build.gradle

android {
  testOptions {
    unitTests {
      includeAndroidResources = true
    }
  }
}

dependencies {
  testImplementation 'org.robolectric:robolectric:2.4'
}

Попробуйте добавить это в gradle.properties

android.enableUnitTestBinaryResources=true
...