Android Jetpack Compose中使用Hilt遇报错:Expected @AndroidEntryPoint to have a value
Hilt构建错误解决:Expected @AndroidEntryPoint to have a value
错误信息
[Hilt] Expected @AndroidEntryPoint to have a value. Did you forget to apply the Gradle Plugin? (com.google.dagger.hilt.android)
[Hilt] Processing did not complete. See error above for details.
当前配置
插件配置(根build.gradle.kts)
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 }
依赖配置(模块级build.gradle.kts)
kapt(libs.hilt.compiler) implementation(libs.androidx.hilt.lifecycle.viewmodel) kapt(libs.androidx.hilt.compiler.v110) implementation(libs.androidx.hilt.navigation.compose.v110)
MainActivity代码
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 { } } } }
解决方案
正确应用Hilt Gradle插件
根build.gradle.kts中保持插件apply false(仅声明不应用),在模块级(app)build.gradle.kts中添加插件应用:alias(libs.plugins.android.application) alias(libs.plugins.jetbrains.kotlin.android) kotlin("kapt") id("com.google.dagger.hilt.android") // 去掉apply false,直接应用 }对齐Hilt依赖版本
确保libs.hilt.compiler的版本与libs.hilt.android.v2511完全一致(均为2.51.1),版本不匹配会导致注解处理异常。添加@HiltAndroidApp注解到Application类
创建自定义Application类并标注Hilt入口注解,这是Hilt初始化的必要步骤:class MyApplication : Application() {}同时在AndroidManifest.xml中指定该Application:
<application android:name=".MyApplication" <!-- 其他原有配置 --> > </application>
内容的提问来源于stack exchange,提问作者Mohsen Mashkour
相关产品推荐
相关产品推荐

