Здравствуйте, я новичок в работе с кинжалом 2. Когда я запускаю приведенный ниже код, я получил:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
Unable to start activity ComponentInfo{com.ali.daggerplayground/com.ali.daggerplayground.main.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
Когда я не использую кинжал, этот код работает нормально. Я не понимаю, из-за чего вид становится нулевым. может кто-нибудь может дать мне объяснение по этому поводу?
это моя активность.
class MainActivity : BaseActivity(), MainContract.View {
@Inject
internal lateinit var mPresenter: MainContract.Presenter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
App.main.inject(this)
tv.text = "This Button"
mPresenter.attach(this)
mPresenter.getImage()
}
override fun onSuccess(message: String?) {
Log.i("MessageReturn", message)
tv.text = message
}
это мой ведущий:
class MainPresenter @Inject constructor(private val mView: MainContract.View) :
MainContract.Presenter {
override fun attach(view: MainContract.View) {
}
override fun getImage() {
mView.onSuccess("success")
}
это мой модуль:
@Module
class ModuleMain {
@Provides
@Singleton
fun provideMainPresenter(mainView: MainContract.View): MainContract.Presenter {
return MainPresenter(mainView)
}
@Provides
@Singleton
fun provideMainView(): MainContract.View {
return MainActivity()
}
этот компонент:
@Singleton
@Component(modules = [ModuleMain::class, ModuleNetwork::class])
interface ComponentMain {
fun inject(mainActivity: MainActivity)
@Component.Builder
interface Builder {
@BindsInstance
fun application(application: Application): Builder
fun moduleNetwork(moduleNetwork: ModuleNetwork): Builder
fun build(): ComponentMain
}