我已经在黑莓上开发了一个应用程序。它在8520和9000上运行良好,但当我在8900上测试它时。它在一段时间内出现内存不足异常。关于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。
先谢谢你...
发布于 2011-04-12 01:57:25
您的应用程序是否使用任何PNG图像资源?看起来是这样的,并且看起来像一些PNG图像足够大,当从图像创建Bitmap实例时,会导致OutOfMemoryError。我的开发经验告诉我,这取决于操作系统版本、设备型号和当前的设备RAM状态。因此,不要对它在一台设备上工作而在另一台设备上不能工作感到惊讶。要防止OutOfMemoryError,只需确保您的Bitmap尺寸不大于显示尺寸的两倍。例如,如果显示器为320x240,则不要使用大于640x480的位图。
https://stackoverflow.com/questions/5623052
复制相似问题