Android - Dagger 不生成 DaggerModelComponent.create()
Android - Dagger not generating DaggerModelComponent.create()
我正在按照此处的这些教程尝试学习匕首。
https://www.youtube.com/watch?v=wJkHYBf8VkA
在我的 activity 中,我试图在重建我的项目后调用 DaggerModelComponent.create() 并且它没有得到解决。
这是我的模型 class:
class Car @Inject constructor(engine: Engine, wheels: Wheels) {
fun drive(){
Log.d("Car", "driving...")
}}
我的组件界面:
@Component interface CarComponent {
fun getCar() : Car }
还有我的 activity:
private lateinit var car: Car
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val component = DaggerCarComponent.create()
car.drive()
}
我还有发动机和车轮模型:
class Engine @Inject constructor()
和
class Wheels @Inject constructor()
这在我的 activity 中不起作用:
val component = DaggerCarComponent.create()
显然,Dagger 应该会生成这个 class 但我认为不是。
这些是我的应用程序中的依赖导入 build.grale
implementation 'com.google.dagger:dagger:2.25.2'
annotationProcessor 'com.google.dagger:dagger-compiler:2.25.2'
我错过了什么吗?也许我在 Kotlin 中做错了什么,我正在学习 Java 中的教程。
提前致谢。
找到解决方案!对于 Kotlin,显然最好使用 kapt 而不是 annotationProcessor。所以添加:
apply plugin: 'kotlin-kapt'
和
kapt 'com.google.dagger:dagger-compiler:2.25.2'
应用 build.gradle 解决了这个问题。
我正在按照此处的这些教程尝试学习匕首。 https://www.youtube.com/watch?v=wJkHYBf8VkA
在我的 activity 中,我试图在重建我的项目后调用 DaggerModelComponent.create() 并且它没有得到解决。
这是我的模型 class:
class Car @Inject constructor(engine: Engine, wheels: Wheels) {
fun drive(){
Log.d("Car", "driving...")
}}
我的组件界面:
@Component interface CarComponent {
fun getCar() : Car }
还有我的 activity:
private lateinit var car: Car
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val component = DaggerCarComponent.create()
car.drive()
}
我还有发动机和车轮模型:
class Engine @Inject constructor()
和
class Wheels @Inject constructor()
这在我的 activity 中不起作用:
val component = DaggerCarComponent.create()
显然,Dagger 应该会生成这个 class 但我认为不是。
这些是我的应用程序中的依赖导入 build.grale
implementation 'com.google.dagger:dagger:2.25.2'
annotationProcessor 'com.google.dagger:dagger-compiler:2.25.2'
我错过了什么吗?也许我在 Kotlin 中做错了什么,我正在学习 Java 中的教程。 提前致谢。
找到解决方案!对于 Kotlin,显然最好使用 kapt 而不是 annotationProcessor。所以添加:
apply plugin: 'kotlin-kapt'
和
kapt 'com.google.dagger:dagger-compiler:2.25.2'
应用 build.gradle 解决了这个问题。