This has been driving me nuts and I'm hoping someone will be able to
help me understand what is happening (or better yet, how to fix
it! ;-).

I set the background image in one of my apps to the system wallpaper
image using the following code:

   Drawable wp = this.getWallpaper();
   background = (ImageView) findViewById(R.id.background);
   background.setImageDrawable(wp);

This seems to work fine, but periodically, I get the out of memory
error shown below.  Actually, on the emulator, all I have to do is
repeatedly rotate the device and this error will consistently happen
after 10-12 rotations.  On the G1, opening and closing the keyboard
doesn't seem to cause this, but I'll still get the failure every once
in a while.

Is getWallpaper() actually making a copy of the image (I would have
thought I'd just get a refernece to the existing bitmap)?  Do I need
to do anything special to free the image?


08-17 08:32:37.943: ERROR/dalvikvm-heap(1597): 614400-byte external
allocation too large for this process.
08-17 08:32:37.943: ERROR/(1597): VM won't let us allocate 614400
bytes
08-17 08:32:38.054: DEBUG/AndroidRuntime(1597): Shutting down VM
08-17 08:32:38.054: WARN/dalvikvm(1597): threadid=3: thread exiting
with uncaught exception (group=0x4000fe70)
08-17 08:32:38.054: ERROR/AndroidRuntime(1597): Uncaught handler:
thread main exiting due to uncaught exception
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.graphics.BitmapFactory.nativeDecodeFileDescriptor(Native
Method)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:
424)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.app.ApplicationContext.getCurrentWallpaperLocked
(ApplicationContext.java:523)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.app.ApplicationContext.peekWallpaper(ApplicationContext.java:
515)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.app.ApplicationContext.getWallpaper(ApplicationContext.java:
504)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.content.ContextWrapper.getWallpaper(ContextWrapper.java:201)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at ....onCreate
(MyApp.java:247)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
1123)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
2231)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:
2284)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.app.ActivityThread.access$1800(ActivityThread.java:112)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.os.Handler.dispatchMessage(Handler.java:99)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.os.Looper.loop(Looper.java:123)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
android.app.ActivityThread.main(ActivityThread.java:3948)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
java.lang.reflect.Method.invokeNative(Native Method)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
java.lang.reflect.Method.invoke(Method.java:521)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
(ZygoteInit.java:782)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
08-17 08:32:38.313: ERROR/AndroidRuntime(1597):     at
dalvik.system.NativeStart.main(Native Method)

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to