给定的组件未实现接口 dagger.hilt.internal.GeneratedComponent?

huangapple go评论48阅读模式
英文:

Given component does not implement interface dagger.hilt.internal.GeneratedComponent?

问题

I'm sorry, but it seems like you provided a lengthy code and explanation. To better assist you, could you please summarize your issue or specify what kind of help you need with your Android app development using Jetpack Compose and Dagger Hilt? This will help me provide a more concise response.

英文:

I am developing Android app using jetpack compose and dagger hilt but when I run project I am getting the following exception

java.lang.IllegalStateException: Given component holder class com.example.readerapp.MainActivity does not implement interface dagger.hilt.internal.GeneratedComponent or interface dagger.hilt.internal.GeneratedComponentManager
                                                                                                    	at dagger.hilt.EntryPoints.get(EntryPoints.java:62)
                                                                                                    	at dagger.hilt.android.internal.lifecycle.HiltViewModelFactory.createInternal(HiltViewModelFactory.java:149)
                                                                                                    	at dagger.hilt.android.internal.lifecycle.HiltViewModelFactory.createInternal(HiltViewModelFactory.java:143)
                                                                                                    	at androidx.hilt.navigation.HiltViewModelFactory.create(HiltNavBackStackEntry.kt:56)
                                                                                                    	at androidx.hilt.navigation.compose.HiltViewModelKt.createHiltViewModelFactory(HiltViewModel.kt:56)
                                                                                                    	at com.example.readerapp.navigation.ReaderNavigationKt$ReaderNavigation$1$5.invoke(ReaderNavigation.kt:47)
                                                                                                    	at com.example.readerapp.navigation.ReaderNavigationKt$ReaderNavigation$1$5.invoke(ReaderNavigation.kt:37)
                                                                                                    	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:116)
                                                                                                    	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
                                                                                                    	at androidx.navigation.compose.NavHostKt$NavHost$4$1.invoke(NavHost.kt:150)
                                                                                                    	at androidx.navigation.compose.NavHostKt$NavHost$4$1.invoke(NavHost.kt:149)
                                                                                                    	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
                                                                                                    	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
                                                                                                    	at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
                                                                                                    	at androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider(SaveableStateHolder.kt:84)
                                                                                                    	at androidx.navigation.compose.NavBackStackEntryProviderKt.SaveableStateProvider(NavBackStackEntryProvider.kt:60)
                                                                                                    	at androidx.navigation.compose.NavBackStackEntryProviderKt.access$SaveableStateProvider(NavBackStackEntryProvider.kt:1)
                                                                                                    	at androidx.navigation.compose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:52)
                                                                                                    	at androidx.navigation.compose.NavBackStackEntryProviderKt$LocalOwnersProvider$1.invoke(NavBackStackEntryProvider.kt:51)
                                                                                                    	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
                                                                                                    	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
                                                                                                    	at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
                                                                                                    	at androidx.navigation.compose.NavBackStackEntryProviderKt.LocalOwnersProvider(NavBackStackEntryProvider.kt:47)
                                                                                                    	at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:149)
                                                                                                    	at androidx.navigation.compose.NavHostKt$NavHost$4.invoke(NavHost.kt:142)
                                                                                                    	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:116)
                                                                                                    	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
                                                                                                    	at androidx.compose.animation.CrossfadeKt$Crossfade$5$1.invoke(Crossfade.kt:133)
                                                                                                    	at androidx.compose.animation.CrossfadeKt$Crossfade$5$1.invoke(Crossfade.kt:128)
                                                                                                    	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
                                                                                                    	at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
                                                                                                    	at androidx.compose.animation.CrossfadeKt.Crossfade(Crossfade.kt:142)
                                                                                                    	at androidx.compose.animation.CrossfadeKt.Crossfade(Crossfade.kt:73)
                                                                                                    	at androidx.navigation.compose.NavHostKt.NavHost(NavHost.kt:142)
                                                                                                    	at androidx.navigation.compose.NavHostKt$NavHost$5.invoke(Unknown Source:13)
                                                                                                    	at androidx.navigation.compose.NavHostKt$NavHost$5.invoke(Unknown Source:10)
                                                                                                    	at androidx.compose.runtime.RecomposeScopeImpl.compose(RecomposeScopeImpl.kt:162)
                                                                                                    	at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2465)
                                                                                                    	at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(Composer.kt:2733)
                                                                                                    	at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3364)

below my ReaderNavigation.kt

@OptIn(ExperimentalComposeUiApi::class)
@Composable
fun ReaderNavigation() {
    val navController = rememberNavController()
    NavHost(navController = navController, startDestination = ReaderScreens.SplashScreen.name) {
        composable(ReaderScreens.SplashScreen.name) {

            ReaderSplashScreen(navController = navController)
        }
        composable(ReaderScreens.LoginScreen.name) {

            ReaderLoginScreen(navController = navController)
        }
        composable(ReaderScreens.ReaderStatsScreen.name) {
            ReaderStatsScreen(navController = navController)
        }
        composable(ReaderScreens.ReaderHomeScreen.name) {
            Home(navController = navController)
        }

        composable(ReaderScreens.SearchScreen.name) {
            val searchViewModel = hiltViewModel<BookSearchViewModel>()
            SearchScreen(navController = navController, viewModel = searchViewModel)
        }
    }
}

below my MainActivity.kt

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Surface
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.example.readerapp.navigation.ReaderNavigation
import com.example.readerapp.ui.theme.ReaderAppTheme
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            ReaderAppTheme {
                ReaderApp()


                // A surface container using the 'background' color from the theme

            }
        }
    }
}

@Composable
fun ReaderApp() {
    Surface(
        modifier = Modifier
            .fillMaxSize(),
        //.padding(top = 46.dp),
        color = MaterialTheme.colors.background,
    ) {
        Column(
            verticalArrangement = Arrangement.Center,
            horizontalAlignment = Alignment.CenterHorizontally
        ) {
            ReaderNavigation()
        }

    }
}

@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
    ReaderAppTheme {
        //  ReaderApp()
    }
}

below my BookSearchViewModel.kt

@HiltViewModel
class BookSearchViewModel @Inject constructor(private val repository: BookRepository) : ViewModel() {
    var list: List<Item> by mutableStateOf(listOf())
    var isLoading: Boolean by mutableStateOf(true)
    init {
        loadBooks()
    }

    private fun loadBooks() {
        searchBooks("flutter")
    }

    fun searchBooks(query: String) {
        viewModelScope.launch {

            if (query.isEmpty()){
                return@launch
            }
            try {
                when(val response = repository.getBooks(query)) {
                    is Resource.Success -> {
                        list = response.data!!
                        if (list.isNotEmpty()) isLoading = false
                    }
                    is Resource.Error -> {
                        isLoading = false
                        Log.e("Network", "searchBooks: Failed getting books", )
                    }
                    else -> {isLoading = false}
                }

            }catch (exception: Exception){
                isLoading = false
                Log.d("Network", "searchBooks: ${exception.message.toString()}")
            }

        }


    }


}

I am using dagger hilt 2.46 version I already tried following stackoverflow answer https://stackoverflow.com/questions/75256776/given-component-holder-class-packagename-mainactivity-does-not-implement-interfa and other all answers it did not help I already add AndroidEntryPoint to MainActivity as well and all necessary hilt dependency as well I want to know where exactly I am making mistake

答案1

得分: 1

我通过将Jetpack Compose Navigation版本从1.0.0升级到1.1.0-alpha01来解决了我的问题。

在app.gradle文件中的实现部分:

implementation("androidx.hilt:hilt-navigation-compose:1.1.0-alpha01")
英文:

I fixed my problem by updating jetpack compose navigation version from 1.0.0 to 1.1.0-alpha01

implementation("androidx.hilt:hilt-navigation-compose:1.1.0-alpha01")

in app.gradle file

huangapple
  • 本文由 发表于 2023年5月13日 17:30:40
  • 转载请务必保留本文链接:https://go.coder-hub.com/76242002.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定