안녕하세요, ViewModel이 작동하도록 노력하고 있지만 지금까지는 운이 없습니다. Android Studio에 오류가 표시 Cannot resolve symbol 'ViewModelProviders'
됩니다.
나는이 주제에 발견 다른 모든 문제는 수정 된 extends Activity
에 extends AppCompatActivity
, 그러나 나는 올바른 일을 확장하고있다. 내가 무엇을 놓치고 있는지 잘 모르겠습니다 …
내 코드는 이 YouTube 동영상을 기반으로합니다.
MainActivity.java
public class MainActivity extends AppCompatActivity implements
TileAdapter.TileAdapterOnClickHandler {
private BaseViewModel viewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//set Toolbar
Toolbar myToolbar = findViewById(R.id.toolbar);
setSupportActionBar(myToolbar);
//initialize viewModel
viewModel = ViewModelProviders.of(this).get(BaseViewModel.class);
BaseViewModel.java
public class BaseViewModel extends ViewModel {
private Movie[] mMovie;
public void init (Movie[] movies){
this.mMovie = movies;
}
public Movie[] getMovie() {
return mMovie;
}
답변
내 빌드에 두 가지 종속성이 없었기 때문에 문제가 발생했습니다.
implementation "android.arch.lifecycle:extensions:1.1.0"
implementation "android.arch.lifecycle:viewmodel:1.1.0"
감사합니다 @Muthukrishnan Rajendran
답변
사용중인 경우 다음이 androidx
필요합니다.
implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
답변
당신이 컴파일 된 SDK 버전 28을 사용하는 이상 만 얻을 수있는 하나의 실행 종속을 추가해야하는 경우 ViewModel
와LiveData
dependencies {
//...
def lifecycle_version = "1.1.1"
// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:$lifecycle_version"
}
답변
android.arch.lifecycle : extensions는 더 이상 사용되지 않습니다.
def lifecycle_version = "2.2.0"
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
다음 과 같이 viewmodel의 인스턴스 를 만듭니다 .
자바
Yourclass obj = new ViewModelProvider(context).get(ClassViewModel.class);
Kotlin
var obj = ViewModelProvider(context).get(ClassViewModel::class.java)
답변
프로젝트의 build.gradle에 라이브러리를 추가해야합니다.
def lifecycle_version = “2.0.0”
// ViewModel and LiveData
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
답변
Android 공식 문서 에서이 문제를 해결합니다 . 아래에 추가build.grale
def lifecycle_version = "2.0.0"
// ViewModel and LiveData
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
답변
제 경우 (Android Studio 3.6.3)에서는 다음 AppCompatActivity
을 성공적으로 수행합니다.
MyViewModel myViewModel = new ViewModelProvider(this).get(MyViewModel.class);
다음 두 가지가 모두 필요합니다.
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
(혼자서 lifecycle-extentions
충분하지 않았습니다)