无法为 Koin 改造创建 DI,android?

Unable to create DI for retrofit with Koin, android?

我正在尝试使用 DI 来使用 KOIN 创建改造实例 这是模块

val networkModule = module {
factory { provideRetrofit(get()) }
single { provideNetworkApi(get()) }
}

fun provideRetrofit(): Retrofit {
return Retrofit.Builder()
    .baseUrl(NetworkConstant.BASE_URL)
    .addConverterFactory(MoshiConverterFactory.create())
    .client(OkHttpClient.Builder().build())
    .build()

}

fun provideNetworkApi(retrofit: Retrofit): NetworkCall =
retrofit.create(NetworkCall::class.java)

申请中class

class BaseApp :Application() {

override fun onCreate() {
    super.onCreate()
    startKoin {
        androidLogger()
        androidContext(this@BaseApp)
        modules(listOf(prefModule,networkModule))
    }
}
}

编译器在 provideRetrofit(get()

上显示错误
Too many arguments for public fun provideRetrofit():

我能够为另一个创建 DI class

val prefModule = module {
single { AppPreference(androidContext()) }
}

有人能指出我这里有什么问题吗?

是否可以跳过 Retrofit 实例的分离(有什么好处?)并简单地将其合并到创建 NetworkCall 的目标中?

这是我的意思的一个例子:

val appModule = module {
    single {
        val httpInterceptor = HttpLoggingInterceptor()
        httpInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY)

        Retrofit.Builder()
            .client(
                OkHttpClient.Builder()
                    .addInterceptor(httpInterceptor).build()
            )
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .addConverterFactory(GsonConverterFactory.create())
            .baseUrl("https://postman-echo.com/")
            .build()
            .create(PostmanEcho::class.java)
    }

    single {
        PostmanEchoRepository(get(), get())
    }
....

我的 PostmanEchoRepository 使用相当于你的 NetworkCall 作为第一个参数。

详情:https://github.com/oradkovsky/weird-data-input/blob/master/app/src/main/java/com/ror/weirddatainput/di/AppModule.kt

是因为 get()

val networkModule = module {
factory { provideRetrofit() }

single { provideNetworkApi(get()) }
}