이 코드의 StackOverflow의 해결방법이 뭔가요?
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example., PID: 32382
java.lang.StackOverflowError: stack size 8MB
at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1306)
at android.text.SpannableStringBuilder.getChars(SpannableStringBuilder.java:1191)
at android.text.SpannableStringBuilder.toString(SpannableStringBuilder.java:1213)
at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:40)
at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)
at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)
at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)
at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)
at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)
at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)
at com.example.ceell.testing.MainActivity$1.onClick(MainActivity.java:44)
에러는 이렇게 뜹니다ㅠㅠ
for문이 무한루프를 도는 것 같은데 무엇이 문제인지 모르겠습니다
안녕하세요.
흠 코드가 이상합니다. 로직 자체는 이해가 되지만 왜 이렇게 짰는지는 의문이군요. 일단 에러에 대해서만 말씀드리면 처음 버튼 클릭 받고 for안에서 다시 자기 자신의 onclick을 불렀기 때문에 무한 재귀가 발생합니다.
For문안의 onclick을 제거하거나 재귀를 안하도록 바꿔주시면 됩니다.
getBtn에서 setOnClickListener를 하실 때 button.setOnClickListener를 계속해서 호출하고 계시네요.
스코프를 for문 뒤에 하나 더 설정해보세요.
사실 지금처럼 코드를 구성하면 퍼포먼스적으로나 추후 관리 차원에서도 좋지 않습니다.