Search code examples
androidkotlinandroid-jetpack-composedagger-hilt

Hilt plugin problem with Android jetpack compose: "Expected @AndroidEntryPoint to have a value."


I am using Hinl in my project and facing this error:

"Explain build error: [Hilt] Expected @AndroidEntryPoint to have a value. Did you forget to apply the Gradle Plugin? (com.google.dagger.hilt. android) See https://dagger.dev/hilt/ gradle- setup. html [1;31m[Hilt] Processing did not complete. See error above for details.[0m"

These are my plugins and dependencies:

plugins {
    alias(libs.plugins.android.application)
    alias(libs.plugins.jetbrains.kotlin.android)
    kotlin("kapt")
    id("com.google.dagger.hilt.android") version "2.51.1" apply false
}

Dependencies:

implementation(libs.hilt.android.v2511)
kapt(libs.hilt.compiler)
implementation(libs.androidx.hilt.lifecycle.viewmodel)
kapt(libs.androidx.hilt.compiler.v110)
implementation(libs.androidx.hilt.navigation.compose.v110)

And this is my MainActivity:

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
    private val viewModel: WeatherViewModel by viewModels()
    private lateinit var permissionLauncher: ActivityResultLauncher<Array<String>>
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        permissionLauncher = registerForActivityResult(
            ActivityResultContracts.RequestMultiplePermissions()
        ) {
            viewModel.loadWeatherInfo()
        }
        permissionLauncher.launch(
            arrayOf(
                Manifest.permission.ACCESS_COARSE_LOCATION,
                Manifest.permission.ACCESS_FINE_LOCATION
            )
        )

        setContent {
            ComposeWeatherAppTestTheme {
            }
        }
    }
}

Solution

  • for new version kotlin, Hilt, Compose use this:

    In .toml I use:

    [versions]
    kotlin = "2.0.0"
    hiltAndroidCompiler = "2.51.1"
    hilt = "2.51.1"
    navigation-compose = "1.2.0"
    
    [libraries]
    hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
    hilt-android-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hiltAndroidCompiler" }
    androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "navigation-compose" }
    
    
    [plugins]
    compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
    dagger-hilt-android = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
    devtools-ksp = { id = "com.google.devtools.ksp", version = "2.0.0-1.0.24" }
    

    in gradle Module:app use:

    plugins {
        alias(libs.plugins.compose.compiler)
        alias(libs.plugins.dagger.hilt.android)
        alias(libs.plugins.devtools.ksp)
    } 
    
    android{
        composeOptions {
            kotlinCompilerExtensionVersion = "1.5.14"
        }
    }
    dependencies {
        //hilt
        implementation(libs.hilt.android)
        ksp(libs.hilt.android.compiler)
        implementation(libs.androidx.hilt.navigation.compose)
    }
    

    in gradle Top-level:

    plugins {
        alias(libs.plugins.compose.compiler) apply false
        alias(libs.plugins.dagger.hilt.android) apply false
        alias(libs.plugins.devtools.ksp) apply false
    }