Ошибка при разрешении экземпляра для класса Koin - PullRequest
0 голосов
/ 11 ноября 2018

Помогите решить проблему! (((У меня есть 3 модуля для DI. В natworkModule есть модифицированный объект, все viewModels в viewModelModule и все запросы к серверу в respositoryModule. Я сделал все согласно документации, но я не могу найти эту ошибку в Google. Заранее спасибо !!! Извините за мой английский!)

class App : Application(){

    override fun onCreate() {
        super.onCreate()
        startKoin(this, listOf(natworkModule, viewModelModule,repositoryModule))
       }
    }


var natworkModule = module {

  single { createOkHttpClient() }
  single { createApiService<ApiService>(get () ,getProperty(SERVER_URL)) 

  }

}


const val SERVER_URL = "https://api.github.com/"

fun createOkHttpClient() : OkHttpClient{
   val httpLoggingInterceptor = HttpLoggingInterceptor()
   httpLoggingInterceptor.level = HttpLoggingInterceptor.Level.BASIC
   return OkHttpClient.Builder()
        .connectTimeout(60L, TimeUnit.SECONDS)
        .readTimeout(60L, TimeUnit.SECONDS)
        .addInterceptor(httpLoggingInterceptor).build()
   }

 inline fun <reified T> createApiService(okHttpClient: OkHttpClient,  url: String): T {
   val retrofit = Retrofit.Builder()
        .baseUrl(url)
        .client(okHttpClient)
        .addConverterFactory(GsonConverterFactory.create())
        .addCallAdapterFactory(LiveDataCallAdapterFactory()).build()
   return retrofit.create(T::class.java)
 }

var repositoryModule = module {
    factory<TestRepository> {
        TestRepositoryImpl(get())
    }

}

var viewModelModule = module {
    viewModel {
        TestViewModel(get())
    }
}

1 Ответ

0 голосов
/ 14 ноября 2018

Проблема указана в этом константном val val SERVER_URL = "https://api.github.com/", koin не смог найти его, и поэтому произошло исключение. Спасибо всем !!!

...