Код: Выделить всё
libs.versions.tomlКод: Выделить всё
agp = "8.9.0"
kotlin = "2.1.10"
ksp = "2.1.10-1.0.31"
composeCompilerExtension = "1.5.21"
hilt = "2.56"
androidxHiltNavigationCompose = "1.2.0"
[libraries]
# Hilt
hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" }
androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "androidxHiltNavigationCompose" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
Код: Выделить всё
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.ksp) apply false
alias(libs.plugins.hilt) apply false
}
Код: Выделить всё
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.ksp)
alias(libs.plugins.hilt)
}
android {
namespace = "com.example.myapp"
compileSdk = 35
defaultConfig { /* ... */ }
buildTypes { /* ... */ }
compileOptions { /* ... */ }
kotlinOptions { /* ... */ }
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = libs.versions.composeCompilerExtension.get()
}
}
dependencies {
// Hilt
implementation(libs.hilt.android)
ksp(libs.hilt.compiler)
implementation(libs.androidx.hilt.navigation.compose)
// Other relevant dependencies (Compose, Room, etc.)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.compose.material3)
// ...
}
Код: Выделить всё
package com.example.myapp
import android.app.Application
import dagger.hilt.android.HiltAndroidApp
@HiltAndroidApp
class MyApplication : Application()
< /code>
AndroidManifest.xmlКод: Выделить всё
< /code>
ViewModel (MyViewModel.kt)Код: Выделить всё
package com.example.myapp.ui.viewmodel // Your package
import androidx.lifecycle.ViewModel
import com.example.myapp.data.repository.MyRepository // Example repository
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject
@HiltViewModel
class MyViewModel @Inject constructor(
private val repository: MyRepository
) : ViewModel() {
// ... ViewModel logic ...
}
< /code>
Composable Screen (MyScreen.kt)Код: Выделить всё
package com.example.myapp.ui.screens // Your package
import androidx.compose.runtime.Composable
import androidx.hilt.navigation.compose.hiltViewModel // This is the import being used
import com.example.myapp.ui.viewmodel.MyViewModel
@Composable
fun MyScreen(
viewModel: MyViewModel = hiltViewModel() // Error: 'hiltViewModel' unresolved reference
) {
// ... UI logic ...
}
< /code>
[b]Error Message:[/b]
"Unresolved reference: hiltViewModel" (or similar if there's a build error related to Hilt code generation). Previously, I also saw an error suggesting "androidx don't have hilt package" before adding the androidx.hilt:hilt-navigation-composeЧто я пробовал:
[*] Обеспечить com.google.dagge.hilt.android плагин применяется в app/build.lage.kts. ksp (libs.hilt.compiler) и реализация (libs.androidx.hilt.navigation.compose) зависимости.
[*] Мой класс приложений аннотирован с @hiltandroid и объявлен в манифесте. @Inject Constructor.
выполнил несколько синхронизации Gradle, "Clean Project" и "Rebuild Project". с версией, предположительно совместимой с моей версией Kotlin.
Что все еще может быть не так с моей настройкой рукояти, которая предотвращает разрешение hiltviewmodel ()? < /li>
< /ul>
Подробнее здесь: https://stackoverflow.com/questions/796 ... -with-hilt
Мобильная версия