簡體   English   中英

構建項目時崩潰匕首

[英]Crash dagger when build project

當我嘗試構建用於生成Dagger文件的項目時,構建失敗,但有一個例外。 您能告訴我如何修復它,或者至少朝哪個方向看。

e:/home/hodzi/Projects/StudioProjects/StackViewer/app/build/tmp/kapt3/stubs/debug/com/hodzi/stackviewer/di/AppComponent.java:6:錯誤:[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(AnalogResult.throwIfError(AnalysisResult.kt:57)位於org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules(KotlinToJVMBytecodeCompiler.kt:138) kt:154)在org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:58)在org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:103)在org.jetbrains .kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:51)在org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:92)在org.jetbrains.kotlin.daemon.CompileServiceImpl $ compile org.jetbrains.kotlin.daemon。$ 1 $ 2.invoke(CompileServiceImpl.kt:386).org.jetbrains.kotlin.daemon.Compil $ 1 $ 2.invoke(CompileServiceImpl.kt:96)在org.jetbrains.kotlin.daemon.Compil 位於org.jetbrains.kotlin.daemon.CompileServiceImpl $ doCompile $$的eServiceImpl $ doCompile $$ inlined $ ifAlive $ lambda $ 2.invoke(CompileServiceImpl.kt:889)位於org.jetbrains.kotlin.daemon.CompileServiceImpl $ doCompile $$ inlined $ ifAlive $ lambda $ 2.invoke(CompileServiceImpl.kt:96)at org.jetbrains.kotlin.daemon.CompileServiceImpl上的org.jetbrains.kotlin.daemon.common.DummyProfiler.withMeasure(PerfUtils.kt:137)在org.jetbrains.kotlin.daemon.CompileServiceImpl.checkedCompile(CompileServiceImpl.kt:916) org.jetbrains.kotlin.daemon上的doCompile(CompileServiceImpl.kt:888).sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)處的compileServiceImpl.compile(CompileServiceImpl.kt:385)at sun.reflect.NativeMethodAccessorImpl.invoke(Native Method) java:62)位於sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)位於java.lang.reflect.Method.invoke(Method.java:498)在sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java :324)在sun.rmi.transport.Transport $ 1.run(Transport.java:200)在sun.rmi.transport.Transport $ 1.run(Tr ansport.java:197),位於java.security.AccessController.doPrivileged(本機方法),位於sun.rmi.transport.Transport.serviceCall(Transport.java:196),位於sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport。 java.568)位於sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run0(TCPTransport.java:826)位於sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.lambda $ run $ 0(TCPTransport.java:683)位於sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run(TCPTransport.java:682)上的java.security.AccessController.doPrivileged(本機方法),java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.lang.Thread.run(Thread.java:745)上的java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)原因:org.jetbrains.kotlin.kapt3.diagnostic.KaptError:發生錯誤在org.jetbrains.kotlin.kapt3.AnnotationProcessingKt.do的org.jetbrains.kotlin.kapt3.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:90)處進行注釋處理 位於org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.run的AnnotationProcessing $ default(annotationProcessing.kt:42),位於org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:166)的AnnotationProcessing(Kapt3Extension.kt:205) .jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:82)at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM $ analyzeFilesWithJavaIntegration $ 2.invoke(TopDownAnalyzerFacade。 cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:106)位於org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegratcade $ default(TopDownAnalyzer) jvm.compiler.KotlinToJVMBytecodeCompiler $ analyze $ 1.invoke(KotlinToJVMBytecodeCompiler.kt:377)在org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler $ analyze $ 1.invoke(KotlinToJVMBytecodeCompiler $ analyze $ 1。 org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:96)處的odeCompiler.kt:68)(org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.Tok。 368)at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules(KotlinToJVMBytecodeCompiler.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@Singleton ,所以哪一個是負責該范圍是什么? 這正是錯誤所說的。 從其中之一中刪除注釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM