在我的应用程序中,我想使用Dagger2,我只想显示服务器中的一幅图像,而我要显示的图像中使用Picasso。我写下面的代码,但运行应用程序后,没有显示任何图像进入imageview
!对于android,我使用Kotlin语言。
应用程序类:
class App : Application() {
var component: AppComponent? = null
override fun onCreate() {
super.onCreate()
//Init dagger component
component = DaggerAppComponent.builder().modulePicasso(ModulePicasso(this)).build()
}
fun getAppComponent(): AppComponent? {
return component
}
}
活动类别:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
App().getAppComponent()?.getPicasso()?.load("https://cdn01.zoomit.ir/2017/6/5f0e97c1-9eb7-4176-aa02-35252489ede8.jpg")
?.into(imageView)
}
}
我该如何解决?
声明您的互联网许可
我认为是因为您正在创建应用程序类的新实例,例如。 App()
,然后调用getAppComponent()
,它肯定会返回null
,就像您应该not自己构造应用程序实例,而是访问引用它的静态属性。
要修复它,您需要向instance
类添加静态属性(App
),并使用该属性获取AppComponent
。