will come true

[Android/Kotlin] 안드로이드 뷰바인딩 하려는데 MainActivityBinding 클래스가 자동으로 생성안될 경우 해결법 본문

Android

[Android/Kotlin] 안드로이드 뷰바인딩 하려는데 MainActivityBinding 클래스가 자동으로 생성안될 경우 해결법

haehyun 2021. 12. 23. 23:18

문제상황

안드로이드 뷰바인딩 기능을 실습하기위해 activity_main.xml 레이아웃 작성 후, build.gradle파일을 수정하고 새로 빌드했음에도 MainActivity.kt 소스파일에서 MainActivityBinding 클래스에 접근할 수 없다.(해당 클래스 자체가 존재하지 않음) XML파일에 맞는 클래스명을 입력해도 빨간색으로 표시되며 존재하지 않는다고 함.

android {
    // ... 
    buildFeatures{
        viewBinding = true
    }
}

 

참고로 프로젝트 생성 때부터 Gradle 버전도 4.0이상으로 잘 설정되어있는 상태.

 

해결 A

1. Gradle 파일을 수정한 후, [Build] > [Rebuild Project] 클릭

 

2. MainActivity.kt 소스파일로 이동하여 뷰바인딩 객체를 생성하면 빨간줄이 표시되지 않는다.

 

해결 B

1. 기존에 buildFeatures{ } 로 작성한 부분을 지우고 viewBinding{ } 형식으로 새로 작성해준다.

android {
    // ... 
    viewBinding{
        enabled = true
    }
}

 

2. MainActivity.kt 파일로 이동해주면 위와 같은 알림이 표시된다.
Gradle파일이 변경되었으니 프로젝트와 다시 싱크를 맞추라는 뜻으로, "Sync Now"를 눌러준다.

 

3. [Build] > [Rebuild] 클릭

 

4. XML파일명에 따른 클래스명(XML파일명 카멜식, 언더바제거, + Binding)을 입력하면 제대로 자동완성에 걸리게 된다.

 

5. build.gradle파일로 돌아가서 다시 'buildFeatures'를 입력하면 이제서야 자동완성에 걸리게된다. 

 

Comments