如何使用hilt与kp一起使用而不是kapt似乎我想不明白 请让我知道我应该添加哪些依赖项以及我应该如何添加它们

我添加的依赖项:

//hilt
    val hiltVersion = "2.51"  
    implementation("com.google.dagger:hilt-android:$hiltVersion")
    ksp("com.google.dagger:hilt-android-compiler:$hiltVersion")
    ksp("com.google.dagger:hilt-compiler:$hiltVersion")

插件:

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    id ("com.google.dagger.hilt.android")
    id("com.google.devtools.ksp") version "1.9.22-1.0.17"
}

构建gradle:

plugins {
    id("com.android.application") version "8.2.2" apply false
    id("org.jetbrains.kotlin.android") version "1.9.0" apply false
    id("com.google.dagger.hilt.android") version "2.51" apply false
    id("com.google.devtools.ksp") version "1.9.22-1.0.17" apply false
}

我try 了不同的刀柄版本,比如2.48.1 不同的kotlinDeliverExtensionVersion,例如1.5.8

似乎什么都不起作用我有多个不同的错误不知道我在做什么也不知道我做错了什么

推荐答案

当使用kotlinkspcompose时,您必须记住使用相互兼容的版本,否则构建项目很可能会失败.

Kotlin and KSP

看看releases,kSP版本总是由两个部分组成,例如1.9.23-1.0.20,其中1.9.23是kotlin版本,1.0.20是实际的KSP版本(我认为).

Kotlin and Compose

兼容版本列表可在Android docs中找到.

Your case

由于您使用的是kotlin 1.9.0,因此应该使用KSP 1.9.0-1.0.13kotlinCompilerExtensionVersion 1.5.2.对于dagger 来说,基于this2.48及以上版本应该很好,所以2.51版本就可以了.

Android相关问答推荐

如何将Hilt添加到Android Studio中的Kotlin项目中?

如何在"不同活动"中添加不同按钮?

Android意图过滤器不限制应用程序仅处理YouTube链接

即使安装了Chrome和YouTube,Android对action_view a YouTube URL的意图也是空的

格雷德的两个星号是什么意思?非路径

登录方法显示为空列表,即使它显示的是Firebase身份验证控制台

在Jetpack Compose中从LazyColumn中删除项目时发生IndexOutOf边界异常

在Jetpack Compose中将导航绘图显示在顶部栏下方、底部栏上方

如何隐藏OutlinedTextField边框上的提示标签

LaunchedEffect没有延迟时应用程序崩溃

从 Jetpack Compose 中的图像中删除默认高度

为什么第二个代码可以安全地在 map 中进行网络调用,因为它已被缓存?

Android WebView 不会在滚动端加载新内容

设置背景图片组成Column

React Native Android 应用程序在调试模式下运行良好,但当我们发布 apk 时,它会生成旧版本的应用程序

记住或不记得derivedStateOf

如何授予对 Uri 图像的永久权限(androidx)

这是 let 函数的正确用法吗?

新安装 Expo Go 的 android 设备上的 sdk 46.0.0 (@snack/sdk.46.0.0) 出错

Jetpack compose 绘制形状