Android многомодульное приложение не проходит тестирование пользовательского интерфейса из-за компонентов материала - PullRequest
0 голосов
/ 03 мая 2020

У меня есть небольшое мультимодульное приложение, в котором я использую Google Material Components. Приложение работает безупречно, но когда я запускаю тест Espresso, если происходит сбой с:

Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).

В настоящее время единственное место в моем приложении, где я ссылаюсь на MaterialComponents, находится в модуле app в values/styles.xml с

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

Нужно ли иметь что-то еще в моем функциональном модуле, который я пытаюсь протестировать? В настоящее время у меня есть файл Gradle implementation(SupportLibs.MATERIAL) для импорта компонента Материала Google в модулях app и feature_module, но все равно не повезло.

Заранее большое спасибо!

РЕДАКТИРОВАТЬ: Настройка на компонент карты android:theme="@style/Theme.MaterialComponents" исправляет тест и приложение по-прежнему работает, но цвета очень разные

1 Ответ

0 голосов
/ 03 мая 2020

Нет Theme.MaterialComponents.DayNight.NoActionBar просто Theme.MaterialComponents.DayNight.NoActionBar.DarkActionBar или Theme.MaterialComponents.DayNight.NoActionBar.DarkActionBar.Bridge

, также, если вы еще этого не сделали, вам нужно добавить это в файл Gradle:

//Material
implementation "com.google.android.material:material:1.0.0"
// or "1.2.0-alpha06" 

https://mvnrepository.com/artifact/com.google.android.material/material

...