Problem mit der Hilt-Abhängigkeit: Es wird erwartet, dass @AndroidEntryPoint einen Wert hat. Haben Sie vergessen, das Gr
Posted: 07 Jan 2025, 04:38
Ich habe mir bereits die anderen Beiträge hier angesehen, aber keine Antwort hat funktioniert
Ich versuche, Hilt mit Room und KSP zu verwenden
Das Problem trat auf, als ich
geändert habe
an
Der LoginScreen, der @Composable und keine spezifische Griffanmerkung enthält
build.gradle.kts (:app)
Das Auskommentieren des Hilt-Plugins hier verhindert die Kompilierung:
build.gradle.kts (oberste Ebene)
Dies sind alles Aliase für libs.versions.toml, also werfen wir einen Blick darauf
Außerdem:
Es ist möglich, dass die Definition des viewModel innerhalb von LoginScreen eine schlechte Idee ist (ich bin neu bei Android Dev). Ich wollte es für
Aber vielleicht ist das anderswo besser aufgehoben.
Ich versuche, Hilt mit Room und KSP zu verwenden
Das Problem trat auf, als ich
geändert habe
Code: Select all
val viewModel: LoginViewModel = viewModel()
Code: Select all
val viewModel: LoginViewModel = hiltViewModel()
build.gradle.kts (:app)
Code: Select all
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.ksp)
// alias(libs.plugins.hilt)
}
dependencies {
implementation(libs.hilt.navigation)
implementation(libs.hilt.android)
implementation(libs.hilt.compiler)
ksp(libs.hilt.compiler)
// ksp(libs.dagger.compiler)
// implementation(libs.hilt.gradle)
// implementation(libs.dagger.compiler)
Code: Select all
Unable to load class 'com.google.devtools.ksp.gradle.KspTaskJvm'
com.google.devtools.ksp.gradle.KspTaskJvm
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Code: Select all
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.kotlin.compose) apply false
alias(libs.plugins.hilt) apply false
}
Code: Select all
[versions]
kotlin = "2.1.0"
hilt = "2.53.1"
daggerCompiler = "2.53.1"
hiltNavigation = "1.2.0"
ksp = "2.1.0-1.0.29"
[libraries]
dagger-compiler = { module = "com.google.dagger:dagger-compiler", version.ref = "daggerCompiler" }
hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" }
# hilt-gradle = { group = "com.google.dagger", name = "hilt-android-gradle-plugin", version.ref = "hilt"}
hilt-navigation = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "hiltNavigation" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
- Es gibt nur eine Aktivität und sie hat die Annotation @AndroidEntryPoint.
Anwendung hat @HiltAndroidApp - ViewModel hat @HiltViewModel und @Inject Konstruktor
Es ist möglich, dass die Definition des viewModel innerhalb von LoginScreen eine schlechte Idee ist (ich bin neu bei Android Dev). Ich wollte es für
Code: Select all
// Login Button
Button(
onClick = { viewModel.validateLogin(username, password) },
modifier = Modifier.fillMaxWidth()
) {}