
경위: MainActivity.java에서 switch문을 쓰고 싶었다.
public void onButtonClick(View view) {
TextView text1 = (TextView) findViewById(R.id.text1);
switch(view.getId()) {
case R.id.button1:
text1.setText("hello");
break;
case R.id.button2:
text1.setText("world");
break;
}
}

위 코드를 썼더니 R.id.button1과 R.id.button2에 자꾸 빨간줄이 그어지는 것이다. Gemini에게 알아본 결과 결론은 사용할 수 없었다. gradle.properties에 android.nonFinalResIds=false 를 추가해도 소용 없었다.
=> 이유는 R.id.button1 이런 식으로 쓰는건 리소스 ID가 상수라는 가정 하에 쓰는건데, Android studio 버전이 올라가면서 구글이 리소스 ID를 무조건 non-final로 쓰도록 강제했기 때문.
=> 또다른 이유는, switch문을 버리기 위해서.
=> 이 모든 것의 궁극적인 이유는 빌드 속도를 향상시키기 위해.
