[Android/Error] Constant expression required

2024. 7. 3. 21:01Android/에러 및 이슈 사항

728x90
반응형

갑자기 Switch ~ Case 문에서 ‘Constant expression required’ 오류가 발생하였다.

 

기본적으로 Android Gradle 플러그인 8.0.0부터 최적화된 빌드 속도를 위해 리소스(예 : 상수 표현식) R.id. ...가 더 이상 선언되지 않기에 발생한 오류였다.

switch (R.id.btn) {
    case 입력값1: ...
         break;
    case 입력값2: ...
         break;
    ...
    default: ...
         break;
}

위와 같이 코드를 작성하면 해당 오류가 발생하는 것이다.


해결 방법은 아래와 같다.

 

방법1. Switch ~ Case 문을 if 문으로 변경한다.

해당 소스코드 switch 위에 커서를 올린 뒤, alt+enter를 눌러 if문으로 자동으로 변경할 수 있다.

 

방법 2. 컴파일 타임 상수 사용

switch 문에서 사용되는 값이 컴파일 타임 상수인지 확인하여 final로 선언한다.

 

방법3. gradle.properties 파일에 다음 줄을 추가한다.

android.nonFinalResIds=false

 

방법 3이 제일 간편하다.

 

gradle.properties에 대한 자세한 설명은

https://anovice-dp.tistory.com/349 참고!

728x90
반응형