建造工程时碰撞匕首

当我尝试构建生成Dagger文件的项目生成失败,出现异常。 你能告诉我如何修复它,或者至少在什么方向看。

e:/home/hodzi/Projects/StudioProjects/StackViewer/app/build/tmp/kapt3/stubs/debug/com/hodzi/stackviewer/di/AppComponent.java:6:error:[com.hodzi.stackviewer.questions。 di.QuestionsComponent] com.hodzi.stackviewer.questions.di.QuestionsComponent有冲突的范围:e:

e:公共抽象接口AppComponent {e:^ e:
com.hodzi.stackviewer.di.AppComponent也有@Singleton e:java.lang.IllegalStateException:未能分析:org.jetbrains.kotlin.kapt3.diagnostic.KaptError:在org.jetbrains.kotlin.analyzer的注解处理时出错。在org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler。)上的org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules(KotlinToJVMBytecodeCompiler.kt:138)处的AnalysisResult.throwIfError(AnalysisResult.kt:57) kt:154)at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:58)at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:103)at org.jetbrains .kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:51)at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:92)at org.jetbrains.kotlin.daemon.CompileServiceImpl $ compile在org.jetbrains.kotlin.daemon.CompileServiceImpl上编译$ 1 $ 2.invoke(CompileServiceImpl.kt:386) eServiceImpl $ doCompile $$ inlined $ ifAlive $ lambda $ 2.invoke(CompileServiceImpl.kt:889)at org.jetbrains.kotlin.daemon.CompileServiceImpl $ doCompile $$ inlined $ ifAlive $ lambda $ 2.invoke(CompileServiceImpl.kt:96)at org.jetbrains.kotlin.daemon.common.DummyProfiler.withMeasure(PerfUtils.kt:137)at org.jetbrains.kotlin.daemon.CompileServiceImpl.checkedCompile(CompileServiceImpl.kt:916)at org.jetbrains.kotlin.daemon.CompileServiceImpl。在sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)上,在org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:385)处编译(CompileServiceImpl.kt:888)。 java:62)at sun.rlect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java :324)at sun.rmi.transport.Transport $ 1.run(Transport.java:200)at sun.rmi.transport.Transport $ 1.run(Tr 在sun.rmi.transport.Transport.serviceCall(Transport.java:196)at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport。)上的java.security.AccessController.doPrivileged(Native方法) java:568)at sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run0(TCPTransport.java:826)at sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.lambda $ run $ 0(TCPTransport.java:683)at java.security.AccessController.doPrivileged(Native Method)at sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run(TCPTransport.java:682)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)java.lang.Thread.run(Thread.java:745)引起的:org.jetbrains.kotlin.kapt3.diagnostic.KaptError:Error while在org.jetbrains.kotlin.kapt3.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:90)处的注释处理,位于org.jetbrains.kotlin.kapt3.AnnotationProcessingKt.do org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:166)at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.runAnnotationProcessing(Kapt3Extension.kt:205)的AnnotationProcessing $ default(annotationProcessing.kt:42) .jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:82)at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM $ analyzeFilesWithJavaIntegration $ 2.invoke(TopDownAnalyzerFacadeForJVM.kt:96)at org.jetbrains.kotlin。在org.jetbrains.kotlin.cli上的org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration $ default(TopDownAnalyzerFacadeForJVM.kt:83)。 jvm.compiler.KotlinToJVMBytecodeCompiler $ analyze $ 1.invoke(KotlinToJVMBytecodeCompiler.kt:377)at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler $ analyze $ 1.invoke(KotlinToJVMBytec odeCompiler.kt:68)at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:96)at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt: 368)at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules(KotlinToJVMByycodeCompiler.kt:133)… 30更多

组件:

1)AppComponent

@Singleton @Component(modules = arrayOf(AppModule::class, NetModule::class)) interface AppComponent { fun inject(app: App) fun plus(questionsModule: QuestionsModule): QuestionsComponent } 

2)QuestionsComponent

 @Singleton @Subcomponent(modules = arrayOf(QuestionsModule::class)) interface QuestionsComponent { fun inject(questionsActivity: QuestionsActivity) } 

模块:

1)AppModule

 @Module class AppModule(val application: Application) { @Provides @Singleton fun provideApplication(): Context = application @Provides @Singleton fun provideSharedPrefs(context: Context): SharedPreferences = context.getSharedPreferences(context.packageName, Context.MODE_PRIVATE) } 

2)QuestionsModule

 @Module class QuestionsModule { @Provides @Singleton fun provideQuestionsPresenter(questionsInteractor: QuestionsInteractor): QuestionsPresenter = QuestionsPresenter(questionsInteractor) @Provides @Singleton fun provideQuestionsInteractor(api : Api): QuestionsInteractor = QuestionsInteractor(api) } 

应用程序:

 class App : Application() { val appComponent: AppComponent by lazy { DaggerAppComponent.builder() .netModule(NetModule()) .appModule(AppModule(this)) .build() } val questionsComponent: QuestionsComponent by lazy { appComponent.plus(QuestionsModule()) } override fun onCreate() { super.onCreate() Injector.inject(this) NetUtils.init(this) } } 

如果有帮助,我附上一个链接到githab

您已经将AppComponentQuestionsComponent定义为AppComponent ,那么哪一个负责该范围? 这正是错误所说的。 从其中之一移除注释。