google / dagger

A fast dependency injector for Android and Java.
https://dagger.dev
Apache License 2.0
17.44k stars 2.01k forks source link

ComponentProcessingStep was unable to process 'com.example.lab0.App_HiltComponents.SingletonC' because '<error>' could not be resolved. #4187

Closed gdblsssu closed 10 months ago

gdblsssu commented 10 months ago
/home/uiop/AndroidStudioProjects/labs/lab0/app/build/generated/hilt/component_sources/debug/com/example/lab0/App_HiltComponents.java:157: error: package MainViewModel_HiltModules does not exist
          MainViewModel_HiltModules.KeyModule.class
                                   ^
/home/uiop/AndroidStudioProjects/labs/lab0/app/build/generated/hilt/component_sources/debug/com/example/lab0/App_HiltComponents.java:194: error: package MainViewModel_HiltModules does not exist
          MainViewModel_HiltModules.BindsModule.class
                                   ^
error: ComponentProcessingStep was unable to process 'com.example.lab0.App_HiltComponents.SingletonC' because '<error>' could not be resolved.

  Dependency trace:
      => element (CLASS): com.example.lab0.App_HiltComponents.ActivityRetainedC
      => annotation: @dagger.Subcomponent(modules = {com.example.lab0.App_HiltComponents.ActivityCBuilderModule.class, com.example.lab0.App_HiltComponents.ViewModelCBuilderModule.class, dagger.hilt.android.internal.managers.HiltWrapper_ActivityRetainedComponentManager_LifecycleModule.class, "<error>"})
      => annotation method: java.lang.Class<?>[] modules()
      => annotation value (ARRAY): value 'com.example.lab0.App_HiltComponents.ActivityCBuilderModule.class,com.example.lab0.App_HiltComponents.ViewModelCBuilderModule.class,dagger.hilt.android.internal.managers.HiltWrapper_ActivityRetainedComponentManager_LifecycleModule.class,<error>' with expected type java.lang.Class<?>[]
      => annotation value (STRING): value '<error>' with expected type java.lang.Class<?>

  If type '<error>' is a generated type, check above for compilation errors that may have prevented the type from being generated. Otherwise, ensure that type '<error>' is on your classpath.
error: ComponentProcessingStep was unable to process 'com.example.lab0.App_HiltComponents.ActivityRetainedC' because '<error>' could not be resolved.

  Dependency trace:
      => element (CLASS): com.example.lab0.App_HiltComponents.ActivityRetainedC
      => annotation: @dagger.Subcomponent(modules = {com.example.lab0.App_HiltComponents.ActivityCBuilderModule.class, com.example.lab0.App_HiltComponents.ViewModelCBuilderModule.class, dagger.hilt.android.internal.managers.HiltWrapper_ActivityRetainedComponentManager_LifecycleModule.class, "<error>"})
      => annotation method: java.lang.Class<?>[] modules()
      => annotation value (ARRAY): value 'com.example.lab0.App_HiltComponents.ActivityCBuilderModule.class,com.example.lab0.App_HiltComponents.ViewModelCBuilderModule.class,dagger.hilt.android.internal.managers.HiltWrapper_ActivityRetainedComponentManager_LifecycleModule.class,<error>' with expected type java.lang.Class<?>[]
      => annotation value (STRING): value '<error>' with expected type java.lang.Class<?>

  If type '<error>' is a generated type, check above for compilation errors that may have prevented the type from being generated. Otherwise, ensure that type '<error>' is on your classpath.
error: ComponentProcessingStep was unable to process 'com.example.lab0.App_HiltComponents.ViewModelC' because '<error>' could not be resolved.

  Dependency trace:
      => element (CLASS): com.example.lab0.App_HiltComponents.ViewModelC
      => annotation: @dagger.Subcomponent(modules = {dagger.hilt.android.internal.lifecycle.HiltWrapper_HiltViewModelFactory_ViewModelModule.class, "<error>"})
      => annotation method: java.lang.Class<?>[] modules()
      => annotation value (ARRAY): value 'dagger.hilt.android.internal.lifecycle.HiltWrapper_HiltViewModelFactory_ViewModelModule.class,<error>' with expected type java.lang.Class<?>[]
      => annotation value (STRING): value '<error>' with expected type java.lang.Class<?>

  If type '<error>' is a generated type, check above for compilation errors that may have prevented the type from being generated. Otherwise, ensure that type '<error>' is on your classpath.
5 errors
bcorso commented 10 months ago

This looks like https://github.com/google/dagger/issues/4060.

@gdblsssu what is your version of Dagger and KSP?

Can you check if upgrading to Dagger 2.49 and KSP 1.9.20-1.0.14 fixes the issue?

gdblsssu commented 10 months ago

No, maybe I messed up something in gradle?

// **top-level gradle**
buildscript {
    dependencies {
        classpath ("com.google.dagger:hilt-android-gradle-plugin:2.49")
    }
}
plugins {
    id("com.android.application") version "8.1.0" apply false
    id("org.jetbrains.kotlin.android") version "1.9.21" apply false
    id("com.google.dagger.hilt.android") version "2.49" apply false
    id("com.google.devtools.ksp") version "1.9.20-1.0.14" apply false

}
// **module-level gradle**
plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    id("com.google.dagger.hilt.android")
    id("com.google.devtools.ksp")
}

android {
    namespace = "com.example.lab0"
    compileSdk = 33

    defaultConfig {
        applicationId = "com.example.lab0"
        minSdk = 24
        targetSdk = 33
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary = true
        }
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"

    }
    buildFeatures {
        compose = true
    }
    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.6"
    }
    packaging {
        resources {
            excludes += "/META-INF/{AL2.0,LGPL2.1}"
        }
    }

}

dependencies {
    implementation("com.google.dagger:hilt-android:2.49")
    implementation("androidx.hilt:hilt-navigation-compose:1.0.0")
    implementation("androidx.appcompat:appcompat:1.6.1")

    ksp("com.google.dagger:hilt-android-compiler:2.49")

    implementation("androidx.room:room-runtime:2.5.2")
    ksp ("androidx.room:room-compiler:2.5.2")
    implementation ("androidx.room:room-ktx:2.5.2")

    implementation ("com.squareup.okhttp3:logging-interceptor:4.11.0")
    implementation ("com.squareup.retrofit2:retrofit:2.9.0")
    implementation ("com.squareup.okhttp3:okhttp:5.0.0-alpha.2")
    implementation ("com.squareup.retrofit2:converter-gson:2.9.0")
    implementation("io.coil-kt:coil-compose:2.4.0")
    implementation ("androidx.lifecycle:lifecycle-viewmodel-compose:2.4.1")
    implementation ("com.google.code.gson:gson:2.8.5")
    implementation ("com.airbnb.android:lottie-compose:5.2.0")
    implementation ("androidx.navigation:navigation-compose:2.5.1")
    implementation ("com.google.accompanist:accompanist-navigation-animation:0.23.1")
    implementation("androidx.navigation:navigation-compose:2.4.0")
    implementation("androidx.core:core-ktx:1.9.0")
    implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.1")
    implementation("androidx.activity:activity-compose:1.7.0")
    implementation(platform("androidx.compose:compose-bom:2023.03.00"))
    implementation("androidx.compose.ui:ui")
    implementation("androidx.compose.ui:ui-graphics")
    implementation("androidx.compose.ui:ui-tooling-preview")
    implementation("androidx.compose.material3:material3")
    testImplementation("junit:junit:4.13.2")
    androidTestImplementation("androidx.test.ext:junit:1.1.5")
    androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
    androidTestImplementation(platform("androidx.compose:compose-bom:2023.03.00"))
    androidTestImplementation("androidx.compose.ui:ui-test-junit4")
    debugImplementation("androidx.compose.ui:ui-tooling")
    debugImplementation("androidx.compose.ui:ui-test-manifest")
}
bcorso commented 10 months ago

Does this happen even for clean builds or only incremental builds?

Is it possible to share your project or create a minimal reproducible example so that we can take a look?

dmapr commented 10 months ago

@gdblsssu — a stupid question perhaps, but have you tried using ksp version 1.9.21-1.0.15 to match the Kotlin version in your Gradle?

gdblsssu commented 10 months ago

@dmapr It didn't help

gdblsssu commented 10 months ago

@bcorso link to the project:https://github.com/gdblsssu/lab1_mobile/tree/lab5_2

danysantiago commented 10 months ago

Looks like the issue is that your project structure does not match your file's package.

Specifically MainViewModel has no package line.

gdblsssu commented 10 months ago

@danysantiago Thanks, it helped.