---
title: "テストでandroid.view.InflateException: Binary XML file line #9となっていた時の対処メモ"
description: "AndroidのNavigationテストで発生したInflateExceptionと、テーマ指定による対処の記録。"
url: "https://miyayu.jp/blog/qiita-44f23208db1109faca2e/"
pubDate: "2022-07-25"
updatedDate: "2022-07-25"
tags: ["Android"]
---

# テストでandroid.view.InflateException: Binary XML file line #9となっていた時の対処メモ

> **過去の記事（Qiitaから移行）**
>
> この記事は公開当時の知識・環境に基づいて書いたものです。現在の仕様に合わせた更新・動作確認は行っておらず、内容の正確性や動作を保証するものではありません。
>
> 初出：[2022-07-25・Qiita](https://qiita.com/yuu1111main/items/44f23208db1109faca2e)

# やりたかったこと
Navigatorのテストを書きたくてやってみましたが、動かなかったのでメモ
## 動かなかったコード
```kotlin
@RunWith(AndroidJUnit4::class)
class NavigatorTest {
    @Test
    fun testNavigation(){
        val navController = TestNavHostController(ApplicationProvider.getApplicationContext())

        val topScenario = launchFragmentInContainer<TopFragment>()

        topScenario.onFragment{fragment ->
            navController.setGraph(R.navigation.nav_graph)
            Navigation.setViewNavController(fragment.requireView(),navController)
        }

        onView(ViewMatchers.withId(R.id.setting_button)).perform(click())
        assertEquals(navController.currentDestination?.id,R.id.settingFragment)
    }
}
```

## 出力されたエラー
```text
android.view.InflateException: Binary XML file line #9 in xyz.miyayu.android.weatherapp:layout/top_fragment: Binary XML file line #9 in xyz.miyayu.android.weatherapp:layout/top_fragment: Error inflating class androidx.cardview.widget.CardView
Caused by: android.view.InflateException: Binary XML file line #9 in xyz.miyayu.android.weatherapp:layout/top_fragment: Error inflating class androidx.cardview.widget.CardView
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at android.view.LayoutInflater.createView(LayoutInflater.java:852)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
at xyz.miyayu.android.weatherapp.databinding.TopFragmentBinding.inflate(TopFragmentBinding.java:44)
at xyz.miyayu.android.weatherapp.TopFragment.onCreateView(TopFragment.kt:21)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:3104)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:524)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1890)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1808)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1720)
at androidx.fragment.app.BackStackRecord.commitNow(BackStackRecord.java:317)
at androidx.fragment.app.testing.FragmentScenario$Companion.internalLaunch$lambda-2(FragmentScenario.kt:621)
at androidx.fragment.app.testing.FragmentScenario$Companion.$r8$lambda$qQn68eFQCuWOFZCsJdZ7z8QDNvM(Unknown Source:0)
at androidx.fragment.app.testing.FragmentScenario$Companion$$ExternalSyntheticLambda0.perform(Unknown Source:13)
at androidx.test.core.app.ActivityScenario.lambda$onActivity$2$ActivityScenario(ActivityScenario.java:660)
at androidx.test.core.app.ActivityScenario$$Lambda$4.run(ActivityScenario.java:652)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:2223)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 2: TypedValue{t=0x2/d=0x7f0300fe a=-1}
at android.content.res.TypedArray.getColorStateList(TypedArray.java:597)
at androidx.cardview.widget.CardView.<init>(CardView.java:127)
at androidx.cardview.widget.CardView.<init>(CardView.java:117)
```

## 原因
スタイルの設定がされていなかったため。

## 修正
```kotlin
val topScenario = launchFragmentInContainer<TopFragment>(null,R.style./**自身のテーマ**/)
```
