使用8900黑莓时获取OutOfMemory异常

时间:2011-04-11 14:45:53

标签: blackberry blackberry-simulator

我在黑莓上开发了一个应用程序。它在8520和9000上工作正常,但是当我在8900上测试它时它在一段时间内给出Out Of Memory异常。我在JDE的调试

上收到了以下消息
OutOfMemoryError
No detail message
net_rim_cldc-6(4A0CB600)
 Bitmap
 <init>
 0x8822

net_rim_cldc-6(4A0CB600)
 Bitmap
 <init>
 0x84A5

net_rim_cldc-7(4A0CB600)
 PNGEncodedImage
 getBitmapImpl
 0x39BD

net_rim_cldc-7(4A0CB600)
 EncodedImage
 getBitmap
 0x10F6

net_rim_cldc-7(4A0CB600)
 EncodedImage
 getBitmap
 0x10CE

Triton-5(4DA2E09E)
 Utility
 resizeAlert
 0x7F9D

Triton-1(4DA2E09E)
 AlertScreen
 paintBackground
 0x938

net_rim_cldc-8(4A0CB600)
 Field
 applyTheme
 0x1071

net_rim_cldc-8(4A0CB600)
 Field
 paintSelf
 0x26F0

net_rim_cldc-8(4A0CB600)
 Manager
 paintSelf
 0x9230

net_rim_cldc-9(4A0CB600)
 Screen
 doPaint0
 0x41D3

net_rim_cldc-9(4A0CB600)
 UiEngineImpl
 <private>
 0xB576

net_rim_cldc-9(4A0CB600)
 UiEngineImpl
 doPainting
 0x93AB

net_rim_cldc-9(4A0CB600)
 UiEngineImpl
 pushModalScreen
 0xA983

net_rim_cldc-9(4A0CB600)
 UiApplication
 pushModalScreen
 0x9089

Triton-1(4DA2E09E)
 AlertScreen
 show
 0x836

Triton-2(4DA2E09E)
 CloseCall
 update
 0xBDF

Triton-5(4DA2E09E)
 Request$4
 run
 0x638B

net_rim_cldc-6(4A0CB600)
 Application
 dispatchInvokeLater
 0xAD1

net_rim_cldc-6(4A0CB600)
 Application
 processNextMessage
 0x127A

net_rim_cldc-6(4A0CB600)
 Application
 enterEventDispatcher
 0xA76

Triton(4DA2E09E)
 TritonClient
 runApp
 0x3800

Triton(4DA2E09E)
 TritonClient
 main
 0x3825

我使用了持久数据库,用于HTTP连接的线程。我不知道为什么我只能进入8900。

提前致谢...

1 个答案:

答案 0 :(得分:2)

您的应用是否使用任何PNG图像资源?看起来它看起来像一些PNG图像足够大,当从图像创建OutOfMemoryError实例时会导致Bitmap。我的开发经验表明它取决于操作系统版本,设备型号和当前设备RAM状态。所以不要惊讶它在一台设备上运行而在另一台设备上运行。要阻止OutOfMemoryError,请确保您的Bitmap维度不超过显示尺寸的两倍。例如,如果您的显示器是320x240,则不要使用大于640x480的位图。