1
0

More than 1 year has passed since last update.

【Android】CreationExtras must have a value by `SAVED_STATE_REGISTRY_OWNER_KEY`というエラーが発生した時の対処法

Last updated at Posted at 2022-12-26

エラーが発生した箇所

hiltViewModel()を使ってViewModelにDIを行おうとしました。

@Composable
fun SplashRoute(
    viewModel: SplashViewModel = hiltViewModel(),
    ...
) {
    val uiState by viewModel.uiState.collectAsState()
    ...

エラーの内容

Gradle FileをSyncした際にはエラーは発生しなかったのですが、エミュレーターを使ってアプリを起動しようとすると、次のエラーを発生した後アプリがクラッシュしてしまいました。

FATAL EXCEPTION: main
    Process: com.takagimeow.xxx, PID: 30XXX
    java.lang.IllegalArgumentException: CreationExtras must have a value by `SAVED_STATE_REGISTRY_OWNER_KEY`

エラーが発生した時のSDKのバージョン

Android StudioのFlamingoを使ってプロジェクトを新規作成したので、SDKのバージョンはcompileSdktargetSdk共に33に設定されていました。

android {
    ...
    compileSdk 33

    defaultConfig {
        ...
        minSdk 24
        targetSdk 33
        ...
    }
    ...
}

エラーが発生した時のGradleの内容

この時の、Hiltのバージョンとして以下の設定を使用していました。

buildscript {
    ...
    ext {
        ...
        // Hilt
        hilt_version = '2.44.2'
    }
    ...
}

Hiltに関する依存関係についてはbuild.gradleにて次の内容にしていました。

implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
implementation "androidx.hilt:hilt-navigation-compose:1.0.0"

解決方法

同じような問題を発生した人がいないか探していると、次のStackOverFlowのページが見つかりました。

上記のページで回答されている内容と同じように、次の依存関係をappディレクトリ配下build.gradleに追加しました。

implementation "androidx.navigation:navigation-compose:2.5.1"

結果、無事に解決することができました。同じような問題が出て困っている場合は、試しに上記の依存関係をbuild.gradleに追加してみることをお勧めします。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0