面对与kotlin匕首的问题2

我编写的代码下面的代码编译没有错误,但是当我尝试运行,我得到异常DaggerAppComponent找不到

AppModule.kt

@Module class AppModule private constructor() { @Provides fun providesDispatcher(): Dispatcher { return Dispatcher(providesBus()) } @Provides fun providesUserActionCreator(): PnrUserActionCreator { return PnrUserActionCreator(providesDispatcher()) } @Provides fun providesBus(): Bus { return sBus } companion object { private val sBus = Bus() private var sAppModule: AppModule? = null /** * Gets the app module instance * @return AppModule instance */ val instance: AppModule get() { if (sAppModule == null) { sAppModule = AppModule() } return sAppModule !! } } 

AppComponent.kt

 @Component( modules = arrayOf(AppModule::class) ) interface AppComponent { fun inject(mainActivity: MainActivity) } 

MainActivity.kt

 class MainActivity : AppCompatActivity() { @Inject lateinit var mPnrUserActionCreator: PnrUserActionCreator @Inject lateinit var mEventBus: Bus override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main_screen) DaggerAppComponent.builder().appModule(AppModule.instance) .build().inject(this) } } 

build.gradle文件的Dagger依赖关系

  kapt { generateStubs = true } // Dagger 2 compile 'com.google.dagger:dagger:2.4' kapt 'com.google.dagger:dagger-compiler:2.4' provided 'org.glassfish:javax.annotation:10.0-b28' 

有人可以告诉我做错了什么,我该怎么做才能使其正确?

DaggerAppComponent()是一个生成的类。 你需要“清理和建立”Dagger项目来生成这个类。