코딩 연습장/오류!

오류 일기 -3-

Do아 2021. 3. 16. 09:17
728x90

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에서 받아온 값을 배열로 나누는 코드를 넣어주니까 정상적으로 값이 들어감

처음에 이곳에 배열로 나누는 값을 넣으니까 값이 하나밖에 안들어가고

이곳에 넣으니까 정상작동

728x90