갑자기 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이 제일 간편하다.
'Android > 에러 및 이슈 사항' 카테고리의 다른 글
[Android/Error]Cannot add a AndroidSourceSet with name 'debug' as a AndroidSourceSet with that name already exists (0) | 2024.11.06 |
---|---|
[Android/Error] AGP 버전에 맞춰 Android Studio 업데이트 하기 (0) | 2024.06.28 |
[Android/Error] Kotlin 버전 세팅 이슈 (0) | 2024.06.27 |
[Android/Error] Android Webview에서 SSL 인증서 Error (0) | 2024.06.26 |
[Android/Error]Installed Build Tools revision 33.0.2 is corrupted. (1) | 2024.06.25 |