ERROR : error.NonExistentClass Kotlin In multi module Dagger project

Just add this to build gradle file to avoid the issues related NonExistentClass

kapt {
    correctErrorTypes true 
} 

https://kotlinlang.org/docs/reference/kapt.html#non-existent-type-correction


The Root Cause

Basically, there's not much that can be done to fix this when using kapt. To quote this link that tackles the same problem in another library that uses pre-processors (OrmaDatabase):

Because Kotlin makes its stubs before Java Annotation Processing runs, Kotlin knows just nothing about OrmaDatabase, and the name of the declaration in stubs will be error.NonExistentClass. This breaks the Annotation Processing tool. It's a kind of kapt limitation

How to fix it (the workaround)

Just use plain apt or annotationProcessor for running Dagger compiler. As soon as I changed:

kapt libs.daggerCompiler

to

annotationProcessor libs.daggerCompiler

in my module level build.gradle file, I was able to get the errors. After you've fixed the errors, you gotta revert the line back to kapt because otherwise dagger classes wouldn't be generated since they're defined in Kotlin.