![](/img/trans.png)
[英]How can I auto-generate SQL statements without triggering Findbugs's SQL injection warning?
[英]How can I get Dagger 2 to auto-generate the code I need in this case?
在我的應用程序 class 中,我試圖聲明變量,然后將其注入到我的片段中。
根據我在其他項目中的經驗, DaggerEventComponentImp 應該為這種情況自動生成,但事實並非如此。
有人能幫助我嗎? 非常感謝您提前。
構建.gradle(應用程序)
implementation 'com.google.dagger:dagger:2.41'
implementation 'com.google.dagger:dagger-android-support:2.40.5'
annotationProcessor "com.google.dagger:dagger-compiler:2.40.5"
TerrilerosApp
class TerrilerosApp : Application() {
val eventComponent: EventComponent by lazy {
DaggerEventComponentImp // This is how it should look, but it gives an error when it doesn't autogenerate
.builder()
.with(this)
.build()
}
override fun onCreate() {
super.onCreate()
instance = this
}
companion object {
private lateinit var instance: TerrilerosApp
fun getInstance() = instance
}
}
事件模塊
@Module
object EventModule {
@Provides
@Singleton
fun eventWebServiceProvider(retrofit: Retrofit): EventsWS {
return retrofit.create(EventsWS::class.java)
}
@Provides
@Singleton
fun eventSourceProvider(
service: EventsWS
): EventsDataSource {
return EventsDataSourceImpl(service)
}
@Provides
@Singleton
fun eventRepositoryProvider(dataSource: EventsDataSource): EventRepository {
return EventRepositoryImpl(dataSource)
}
@Singleton
@Provides
fun eventRetrofitProvider(): Retrofit {
return Retrofit.Builder()
.baseUrl(NetworkConfig.BASE_URL)
.client(
OkHttpClient()
.newBuilder()
.build()
)
.addConverterFactory(MoshiConverterFactory.create())
.build()
}
}
事件組件
interface EventComponent {
fun inject(eventFragment: EventFragment)
}
@Singleton
@Component(
modules = [EventModule::class]
)
interface EventComponentImp : EventComponent {
@Component.Builder
interface Builder {
fun build(): EventComponent
}
}
修正:我使用的是最新版本的 Kotlin,與我使用的 Dagger 版本沖突。 我已經下載了 Kotlin 版本,它可以正常工作。 官方文檔中沒有報道,但是我和同事做過測試,同樣的事情發生在他們身上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.