Problem mit der Hilt-Abhängigkeit: Es wird erwartet, dass @AndroidEntryPoint einen Wert hat. Haben Sie vergessen, das GrAndroid

Forum für diejenigen, die für Android programmieren
Guest
 Problem mit der Hilt-Abhängigkeit: Es wird erwartet, dass @AndroidEntryPoint einen Wert hat. Haben Sie vergessen, das Gr

Post by Guest »

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

Code: Select all

val viewModel: LoginViewModel = viewModel()
an

Code: Select all

val viewModel: LoginViewModel = hiltViewModel()
Der LoginScreen, der @Composable und keine spezifische Griffanmerkung enthält
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)
Das Auskommentieren des Hilt-Plugins hier verhindert die Kompilierung:

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.)
build.gradle.kts (oberste Ebene)

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
}
Dies sind alles Aliase für libs.versions.toml, also werfen wir einen Blick darauf

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" }
Außerdem:
  • Es gibt nur eine Aktivität und sie hat die Annotation @AndroidEntryPoint.
    Anwendung hat @HiltAndroidApp
  • ViewModel hat @HiltViewModel und @Inject Konstruktor
Soweit ich das beurteilen kann, ist das Das Problem besteht darin, dass Hilt im Plugin-Block auf App-Ebene fehlt. Wenn es jedoch enthalten ist, kann ich nicht kompilieren.
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()
) {}
Aber vielleicht ist das anderswo besser aufgehoben.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post