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

bitmap 메모리 오류 위치 아는 방법 아시는분 [closed]

0 추천
안녕하세요 안드로이드펍 가족님들..
현재 아래와 같은 오류가 발생하였는데요.. 구글링을 해본결과
메모리가 커서 그렇다고 하는데요 
소스코드 어디서 에러가 났는지 알수가 없습니다
소스코드는 긴데 로그를 다 찍을수도 없구요 ㅜㅜ
10-04 10:05:42.360: E/AndroidRuntime(10402): FATAL EXCEPTION: main
10-04 10:05:42.360: E/AndroidRuntime(10402): java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@43716d30
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.graphics.Canvas.throwIfRecycled(Canvas.java:1026)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.graphics.Canvas.drawBitmap(Canvas.java:1127)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:399)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.widget.ImageView.onDraw(ImageView.java:990)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.View.draw(View.java:14180)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.View.draw(View.java:14064)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewGroup.drawChild(ViewGroup.java:3024)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2893)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.View.draw(View.java:14183)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.View.draw(View.java:14064)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewGroup.drawChild(ViewGroup.java:3024)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2893)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.View.draw(View.java:14062)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewGroup.drawChild(ViewGroup.java:3024)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2893)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.View.draw(View.java:14183)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.View.draw(View.java:14064)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewGroup.drawChild(ViewGroup.java:3024)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2893)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.View.draw(View.java:14062)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewGroup.drawChild(ViewGroup.java:3024)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2893)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.View.draw(View.java:14062)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewGroup.drawChild(ViewGroup.java:3024)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2893)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.View.draw(View.java:14183)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.widget.FrameLayout.draw(FrameLayout.java:467)
10-04 10:05:42.360: E/AndroidRuntime(10402): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2449)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2545)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2439)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2307)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2113)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1183)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4863)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.Choreographer.doCallbacks(Choreographer.java:562)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.Choreographer.doFrame(Choreographer.java:532)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
10-04 10:05:42.360: E/AndroidRuntime(10402): at android.os.Handler.handleCallback(Handler.java:725)
 
 
질문을 종료한 이유: 문제해결  recycle()함수를 해제하니 되네요.
흠바바 1 (4,000 포인트) 님이 2013년 10월 4일 질문
흠바바 1님이 2013년 10월 4일 closed

1개의 답변

0 추천
OOM 아닌데요.

 

ava.lang.RuntimeException: Canvas: trying to use a recycled bitmap

 

이미 recyle 해버린 비트맵을 사용하여 발생한 오류입니다.
원조안드로이드 (58,190 포인트) 님이 2013년 10월 4일 답변
이미 메모리 해제가 된것을 다시 사용해서 오류가 난다는 말씀인가요?
오류를 해결하였습니다.
recycle()함수를 찾아서 해제하니까 에러가 나타나지 않습니다.
recycle()을 해제하면 OOM이 발생할 확률이 높아지겠네요
헉 그런건가요..
그럼 oom발생안하게도하고 지금 제가 격고잇는 오류도 안나게 하려면 어찌해야 하나요 ㅜㅜ
...