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

remoteView Out of memory 해결 방법 질문드려요 ㅠㅠ

0 추천

위젯 앱을 만들고 있습니다

 

그런데 클릭할때 주는 애니매이션 때문에 자꾸 remoteView  에서 Out of memory 가 뜨네요ㅠㅠ

 

애니매이션은 총 3개가있는데 클릭하는 위치에 따라 다르게 나옵니다

 

한번 사용한 애니매이션이 자꾸 캐쉬? 에 저장되어서 결국 애니매이션으로 메모리가 터지는것 같은데

중간중간 remoteView에 쌓인 메모리를 정리해줄순없을까요?ㅠㅠ

 

 

 

고수님들 도움 부탁드립니다!

 

아래는 에러코드

 

03-01 19:53:02.540      809-809/com.teslacoilsw.launcher E/dalvikvm-heap﹕ Out of memory on a 1149200-byte allocation.
03-01 19:53:03.086      809-809/com.teslacoilsw.launcher E/dalvikvm-heap﹕ Out of memory on a 1149200-byte allocation.
03-01 19:53:03.094      809-809/com.teslacoilsw.launcher W/AppWidgetHostView﹕ updateAppWidget couldn't find any view, using error view
    android.widget.RemoteViews$ActionException: java.lang.reflect.InvocationTargetException
            at android.widget.RemoteViews$ReflectionAction.apply(RemoteViews.java:1272)
            at android.widget.RemoteViews.performApply(RemoteViews.java:2458)
            at android.widget.RemoteViews.apply(RemoteViews.java:2417)
            at android.appwidget.AppWidgetHostView.updateAppWidget(AppWidgetHostView.java:402)
            at o.fl.D(:381)
            at o.fl.updateAppWidget(:636)
            at android.appwidget.AppWidgetHost.updateAppWidgetView(AppWidgetHost.java:408)
            at android.appwidget.AppWidgetHost$UpdateHandler.handleMessage(AppWidgetHost.java:104)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5050)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at android.widget.RemoteViews$ReflectionAction.apply(RemoteViews.java:1268)
            at android.widget.RemoteViews.performApply(RemoteViews.java:2458)
            at android.widget.RemoteViews.apply(RemoteViews.java:2417)
            at android.appwidget.AppWidgetHostView.updateAppWidget(AppWidgetHostView.java:402)
            at o.fl.D(:381)
            at o.fl.updateAppWidget(:636)
            at android.appwidget.AppWidgetHost.updateAppWidgetView(AppWi

 

 

 

bombermin (2,520 포인트) 님이 2015년 3월 1일 질문

1개의 답변

0 추천
그냥

AndroidManifest.xml 쪽에서

<application 이부분에

android:largeHeap ="true" 한줄 입력하세요
Djleeee (13,180 포인트) 님이 2015년 3월 3일 답변
답변감사합니다 ㅠㅠ 근데 그건 좀더 사용하는 메모리가 커지면 또 같은 에러가 뜨지 않나요?
근데 애니메이션에 들어가는 이미지 크기가 크니깐 저런 이유가 나오자나요?
이미지 크기 사용에 대해서 다시 생각을 해보셔야할듯...
사실 비트맵으로 가져와서 생명주기 따져보면서 recycle 하시는게 좀 좋으실텐데 커스텀으로 저위처럼 만드는것도 ㄴ쁘지않은거같네요
애니매이션을 4개 사용하는데 각각 98kb, 53.3kb, 53.9kb, 311kb으로 줄일만큼 줄였거든요 ㅠㅠ 이 애니매이션은 꼭 써야하는거라 뺄수도없구..

remoteView에서도 recycle이 사용가능한가요? 이게 animationDrawable이여서 bitmap으로 변환을 먼저 해줘야할지..
...