2020.10.08.(목)
안드로이드 스튜디오 오류
투표기능을 만들고 있는데
다른액비비티에서 db 값을 받아와
그 값을 배열로 나눠 다시 db에서 테이블을 참조하는 스레드로 구현 중에
json을 따로 쓰지않고 받아오기 위해 string 형으로 받아와서
문자를 기준으로 값을 나누는데 생긴 오류
<오류 메세지>
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
값을 배열에서 나누는데 값이 하나만 들어가고 2개 이상 안들어간다
왜그런가 봤더니
asytask를 상속받은 클래스에 다른 액티비티에서 받아온 값을 배열에 나눈는 코드를 넣고
doinbackground 안에서 그 배열 값을 사용했더니 값이 하나밖에 안들어간다
<해결>
doinbackground에 db에서 받아온 값을 배열로 나누는 코드를 넣어주니까 정상적으로 값이 들어감
처음에 이곳에 배열로 나누는 값을 넣으니까 값이 하나밖에 안들어가고
이곳에 넣으니까 정상작동