Почему модуль рукояти не связывает интерфейс и реализацию?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему модуль рукояти не связывает интерфейс и реализацию?

Сообщение Anonymous »

У меня есть веб -слой (LoginWeblayer), вызывающий API. Это очень просто, один из методов переосмыслен из его интерфейса. < /p>
@Singleton
class LoginWebLayer @Inject constructor(
authDataStore: AuthDataStore,
environmentProvider: EnvironmentProvider
) : BaseHttpClient(
authDataStore = authDataStore,
environmentProvider = environmentProvider
), ILoginWebLayer {
override suspend fun login( /* method is implemented */) {}
/* remaining code omitted */
< /code>
Веб -уровень имеет интерфейс (iloginweblayer). < /p>
interface ILoginWebLayer {
suspend fun login(
truckNo: String,
licenceId: String,
userName: String,
)
}
< /code>
Услуга имеет инъекцию интерфейса. < /p>
@Singleton
class LoginService @Inject constructor(
private val loginWebLayer: ILoginWebLayer
) { /* loginWebLayer.login is called in service */ }
< /code>
My LoginViewModel имеет внедренную службу. < /p>
@HiltViewModel
class LoginViewModel @Inject constructor(
private val loginService: LoginService
) : ViewModel() { /* loginService.login is called in viewModel */ }
< /code>
my Composable LoginPage имеет инъекцию ViewModel. < /p>
@Composable
fun LoginPage(
loggedIn: () -> Unit
) {
val viewModel: LoginViewModel = hiltViewModel()
}
< /code>
Я связал интерфейс и реализацию в модуле < /p>
@Module
@InstallIn(SingletonComponent::class)
abstract class WebLayerImplModule {
@Binds
abstract fun getLoginWebLayer(loginWebLayer: LoginWebLayer) : ILoginWebLayer
}
< /code>
И моя MainActivity аннотируется @androidentrypoint. < /p>
Насколько я обнаружил, все это правильно настроено. У меня есть другие ViewModels, введенные успешно, но я впервые попробовал внедрить интерфейс и реализацию. Ошибка, которую я получаю,-это < /p>

»ошибка: [Digger /hisploadbinding] iloginweblayer не может быть предоставлен без примечания @.» Ссылка на модуль - «приложение» и «API». Но я сделал все соответствующие классы публично, пытаясь это исправить, и это еще не изменило ситуации. Что мне не хватает? Основываясь на ошибке, я немного подумал, что он не смог найти мой файл модуля и привязку, но не уверен. Просто чтобы увидеть, был ли один из них проблема. Так что я уверен, что проблема заключается в том, как я связываю интерфейс к его реализации.

Подробнее здесь: https://stackoverflow.com/questions/797 ... ementation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»