【问题标题】:Error inflating class com.google.android.material.tabs.TabLayout inside FragmentScenario test在 FragmentScenario 测试中膨胀类 com.google.android.material.tabs.TabLayout 时出错
【发布时间】:2019-08-13 17:21:02
【问题描述】:

我用FragmentScenario写了一个测试:

@Test
    fun test() {
        launchFragmentInContainer<MyFragment>(Bundle().apply { putParcelableArray(MY_DATA, getMyData()) })
        // checks here
    }

我收到以下错误:

Error inflating class com.google.android.material.tabs.TabLayout

只有在我启动测试时才会出现错误(应用程序有效) 我尝试将 androidTestImplementation "com.google.android.material:material:1.0.0" 添加到 androidTestImplementation 但没有帮助

我能做些什么来解决这个问题?

【问题讨论】:

    标签: android kotlin android-testing androidx android-fragmentscenario


    【解决方案1】:

    活动FragmentScenario 启动的默认主题具有android:Theme.WithActionBar 的父主题 - 而不是TabLayout 所需的MaterialComponents 主题。

    你应该传入你想要使用的主题。

    例如,假设您的应用具有这样声明的主题:

    <style name="AppTheme" parent="Theme.MaterialComponents">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
    

    你会使用:

    launchFragmentInContainer<MyFragment>(
        Bundle().apply { putParcelableArray(MY_DATA, getMyData()) },
        R.style.AppTheme)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 2019-11-29
      • 2017-02-28
      • 2021-07-10
      • 2020-08-01
      相关资源
      最近更新 更多