应用模块化后出现Dagger通用错误,构建报错信息不明确
e: Could not load module <Error module> 模糊报错的排查方案 结合你模块化重构后出现问题的背景,以下是几个高频排查方向:
模块循环依赖
模块化后很容易出现A模块依赖B、B反向依赖A的循环引用,编译器无法解析这种闭环,就会抛出模糊的模块加载错误。逐个梳理新增模块的import/export关系,重点检查跨模块调用的依赖链。模块路径或依赖配置错误
如果自定义了模块路径(比如Gradle的sourceSets、Kotlin的moduleName),或者模块间的implementation/api依赖配置写错,会导致编译器找不到目标模块。检查settings.gradle.kts里的模块声明,以及每个模块的build.gradle.kts依赖配置是否正确。构建缓存干扰
旧的构建缓存可能残留了模块化前的解析逻辑,导致报错信息失真。执行清理命令彻底重置构建环境:./gradlew clean build --no-build-cacheMaven项目可替换为:
mvn clean install -U模块内部隐藏错误
表面的模块加载失败,实际可能是模块内存在语法错误(比如无效泛型、缺失符号)或无效导入(拼写错误的包名、不存在的类),导致编译器无法完整解析模块。尝试单独编译单个模块,定位具体错误:./gradlew :your-target-module:compileKotlinIDE缓存不同步
如果是在IDE中看到的模糊报错,大概率是IDE缓存没跟上模块化修改。执行File -> Invalidate Caches... -> Invalidate and Restart,重启后重新构建。模块命名冲突
新增模块的名称和已有模块、第三方库的模块名重复,会让编译器混淆模块标识。检查settings.gradle.kts中的模块命名,确保每个include的模块名唯一。
内容的提问来源于stack exchange,提问作者Bencri

