依赖注入可能是它们中最强大的模式,但是当我与Kotlin结合时,我想知道Dagger是否可靠,最重要的是可调试性足以处理大型项目.作为gradle中这条指令的一个例子
kapt "com.google.dagger:dagger-compiler:$rootProject.daggerVersion"
Run Code Online (Sandbox Code Playgroud)
产生一个非常长但无用的消息无法访问NonExistent类:缺少当然是如此困难的信息1)缺少的类的名称2)关于此引用所在的代码中的点的任何信息.
显然,这是2016年报告的旧问题:https: //github.com/google/dagger/issues/435
要解决这个问题,需要在此处概述两个步骤: ERROR:error.NonExistentClass Kotlin在多模块Dagger项目中
请记住,您可以在没有多模块情况下出现此错误.
对我来说,禁止在Kotlin应用程序中使用Dagger.我错过了什么或使用了错误的版本.我也把我的整个gradle文件附在下面!
Error:17:18:39.263 [ERROR] [system.err] warning: Supported source version 'RELEASE_7' from annotation processor '__gen.AnnotationProcessorWrapper_debug_android_arch_persistence_room_RoomProcessor' less than -source '1.8'
17:18:39.263 [ERROR] [system.err] error: cannot access NonExistentClass
17:18:39.263 [ERROR] [system.err] class file for error.NonExistentClass not found
17:18:39.263 [ERROR] [system.err] Consult the following stack trace for details.
17:18:39.267 [ERROR] [system.err] com.sun.tools.javac.code.Symbol$CompletionFailure: class file for error.NonExistentClass not found
17:18:39.363 [ERROR] [system.err] 1 error
17:18:39.363 [ERROR] [system.err] 1 warning
17:18:39.399 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
17:18:39.403 [ERROR] …Run Code Online (Sandbox Code Playgroud)