Не удается разрешить символ ViewModelProviders
Я работаю над компонентом архитектуры Android ViewModel, но я получаю вышеупомянутую ошибку при попытке инициализировать ViewModel в AppCompatActivity.
import android.arch.lifecycle.ViewModelProviders;
ViewModelProviders.of(this).get(CounterViewModel.class);
Есть несколько вопросов и статей, связанных с этим, и они указали на добавление lifecycle:extensions
а также lifecycle:viewmodel
зависимости в файле приложения, но я все еще получаю сообщение об ошибке.
implementation "android.arch.lifecycle:extensions:1.1.1"
implementation "android.arch.lifecycle:viewmodel:1.1.1"
annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
Пакет android.arch.lifecycle не содержит класс ViewModelProviders
и это только имеет ViewModelProvider
учебный класс.
Что еще нужно добавить для доступа к ViewModelProviders
учебный класс?
Редактировать:
Зависимости в app/build.gradle:
dependencies {
implementation project(':lifecycle')
implementation project(':base')
implementation "android.arch.lifecycle:extensions:1.1.1"
implementation "android.arch.lifecycle:viewmodel:1.1.1"
annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
}
1 ответ
android.arch.lifecycle:extensions:1.1.1
определенно имеет android.arch.lifecycle.ViewModelProviders
, Вы можете увидеть это в Android Studio, если откроете часть "Внешние библиотеки" дерева проекта и изучите содержимое библиотеки:
Некоторые возможные причины не найти import
включают:
У тебя есть
implementation "android.arch.lifecycle:extensions:1.1.1"
в неправильном месте (должно быть вdependencies
закрытие модуляbuild.gradle
файл, такой какapp/build.gradle
)Вы не синхронизировали Android Studio с файлами сборки Gradle (обычно вам предлагается сделать это, но вы можете сделать это вручную из меню "Файл"> "Синхронизировать проект с файлами Gradle" из главного меню Android Studio).
Вам не нужны оба lifecycle:extensions
а также lifecycle:viewmodel
в вашем файле build.gradle удалите
implementation "android.arch.lifecycle:viewmodel:1.1.1"
и теперь все должно быть в порядке. Кроме того, вы можете перейти на AndroidX и использовать версии 2.0.0 библиотеки.
ViewModelProviders
теперь устарела. ИспользоватьViewModelProvider
вместо.
Если вы настраиваете в libary, вы можете изменить implementation
в api