IT

AppCompatActivity에서 기호 ViewModelProviders를 확인할 수 없습니다.

lottoking 2020. 8. 31. 08:06
반응형

AppCompatActivity에서 기호 ViewModelProviders를 확인할 수 없습니다.


안녕하세요, ViewModel을 작동 시키려고 지금 운영 운이 없습니다. Android Studio에 오류가 표시됩니다 Cannot resolve symbol 'ViewModelProviders'.

나는이 주제에 발견 다른 모든 문제는 수정 된 extends Activityextends 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을 사용하는 이상 만받을 수있는 하나의 실행 가능한 추가해야하는 경우 ViewModelLiveData

dependencies {
    //...
    def lifecycle_version = "1.1.1"

    // ViewModel and LiveData
    implementation "android.arch.lifecycle:extensions:$lifecycle_version"
}

build.gradle 파일에서 블록에 다음 행을 추가하십시오.

dependencies {
...
def lifecycle_version = "1.1.1"
// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:$lifecycle_version"
//if not using java 8,use the following line
annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version"
//if using java 8,ignore above line and add the following line
implementation "android.arch.lifecycle:common-java8:$lifecycle_version"
...
}

build.gradle 파일의 샘플 이미지


프로젝트의 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"

androix라이브러리 사용

변화

implementation 'com.android.support:appcompat-v7:28.0.0'

...에

implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'

당신이 사용할 수있는

Refactor>Migrate to AndroidX

참고 URL : https://stackoverflow.com/questions/49405616/cannot-resolve-symbol-viewmodelproviders-on-appcompatactivity

반응형