마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

갤럭시 S3, S4 listview scroll error

0 추천

 

현재 listview의 형태가  아래와 같습니다. 

1. adapter layout 의 형태가 |고정 그림|글자|고정 그림| 

2. listview의 item 항목개수 1200개

스크롤을 계속 아래로 했을경우 아래와 같은 오류가 나탑니다.  다른 핸드폰에서 안일어나는데 갤럭시 S3, S4 에서 나타 납니다. 도대체 왜그런지 모르겠네여 . ㅠㅠ 

고수분들 도와주세요 부탁드립니다. ㅠㅠ

listview scrolling crashes on only android kitkat 4.4

 

 

http://stackoverflow.com/questions/23671711/listview-scrolling-crashes-on-only-android-kitkat-4-4

07-18 17:07:54.027: E/Surface(15517): dequeueBuffer: IGraphicBufferProducer::requestBuffer failed: -2147483646
07-18 17:07:54.027: E/Surface(15517): dequeueBuffer failed (Unknown error 2147483646)
07-18 17:07:54.032: E/ViewRootImpl(15517): Could not lock surface
07-18 17:07:54.032: E/ViewRootImpl(15517): java.lang.IllegalArgumentException
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.view.Surface.nativeLockCanvas(Native Method)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.view.Surface.lockCanvas(Surface.java:253)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2759)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2733)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2571)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2143)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1234)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6469)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.view.Choreographer.doCallbacks(Choreographer.java:603)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.view.Choreographer.doFrame(Choreographer.java:573)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.os.Handler.handleCallback(Handler.java:733)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.os.Handler.dispatchMessage(Handler.java:95)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.os.Looper.loop(Looper.java:157)
07-18 17:07:54.032: E/ViewRootImpl(15517): at android.app.ActivityThread.main(ActivityThread.java:5356)
07-18 17:07:54.032: E/ViewRootImpl(15517): at java.lang.reflect.Method.invokeNative(Native Method)
07-18 17:07:54.032: E/ViewRootImpl(15517): at java.lang.reflect.Method.invoke(Method.java:515)
07-18 17:07:54.032: E/ViewRootImpl(15517): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
07-18 17:07:54.032: E/ViewRootImpl(15517): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
07-18 17:07:54.032: E/ViewRootImpl(15517): at dalvik.system.NativeStart.main(Native Method)
07-18 17:07:55.637: I/Choreographer(15517): Skipped 43 frames!  The application may be doing too much work on its main thread.
07-18 17:07:57.027: I/Choreographer(15517): Skipped 47 frames!  The application may be doing too much work on its main thread.
07-18 17:07:57.817: I/Choreographer(15517): Skipped 46 frames!  The application may be doing too much work on its main thread.
웅바라지 (4,780 포인트) 님이 2014년 7월 18일 질문

1개의 답변

0 추천
S3 , S4를 떠나서 1200개를 한번에 리스트뷰에 뿌리는거 자체가 문제죠...;;

메모리에는 담아두었다고해도 리스트뷰에는 나누어서 뿌리세요

기기사양이 좋다고하더라도 OS따라 사용할 수 있는 메모리나 버퍼용량은 다 다르니까요
하늘아륑 (16,800 포인트) 님이 2014년 7월 18일 답변
ㅡㅡ; 좀 당황스럽네여
Custom Adapter에 vector 배열을 전달해서~
getview 부분에서 리스트에서 보일때만 가져오는 방식이거든요.
갤s1 부터 개발 시작해서 여태까지 문제없다가 갑자기 킷켓에서 위와 같은 현상이 일어난거에여..;;
...