Out-of-Memory-Fehler in android aufgrund der Heap-Größe Erhöhen

Ich bin immer out of Memory " - Fehlermeldung. Ich arbeite an einem live-chat-Anwendung. Es ist in Ordnung, aber wenn ich auf die Anwendung von 1-2 Stunden auf dem Gerät die heap-Größe erhöhen und wenn es erreicht bei 16 MB start der Anwendung hängen und stürzte nach einiger Zeit und zeigt out of memory due to heap size da die resultierende heap-Größe ist größer als der zugewiesene.

Teste ich meine Anwendung auf dem HTC Explorer. In meiner Anwendung werden die meisten Aktivitäten sind mit hintergrund-thread, und dafür bin ich mit Asnyc Aufgabe.

, Erhalte ich die Fehlermeldung wie die folgende.

04-30 16:53:14.658: E/AndroidRuntime(5707): FATAL EXCEPTION: MagentoBackground
04-30 16:53:14.658: E/AndroidRuntime(5707): java.lang.OutOfMemoryError: (Heap Size=20167KB, Allocated=16063KB, Bitmap Size=355KB)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at org.apache.http.util.ByteArrayBuffer.<init>(ByteArrayBuffer.java:53)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at org.apache.http.impl.io.AbstractSessionInputBuffer.init(AbstractSessionInputBuffer.java:82)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at org.apache.http.impl.io.SocketInputBuffer.<init>(SocketInputBuffer.java:98)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at org.apache.http.impl.SocketHttpClientConnection.createSessionInputBuffer(SocketHttpClientConnection.java:83)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at org.apache.http.impl.conn.DefaultClientConnection.createSessionInputBuffer(DefaultClientConnection.java:170)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at org.apache.http.impl.SocketHttpClientConnection.bind(SocketHttpClientConnection.java:106)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at org.apache.http.impl.conn.DefaultClientConnection.openCompleted(DefaultClientConnection.java:129)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:173)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
04-30 16:53:14.658: E/AndroidRuntime(5707):     at com.live2support.CustomHttpClient.executeHttpPost1(CustomHttpClient.java:163)

Gibt es begrenzen heap-Größe? wie kann ich die lösen mein Problem?

Post code. Meine Vermutung ist, dass Sie mit großen Bitmaps in eine Benutzerdefinierte Liste.
...oder zu großen Arrays ?
ich bin nicht mit bitmap in meiner Anwendung.ich Habe einige Bilder in den drawable-Ordner und ich bin mit Ihnen nur, die sind nicht viel 15-20 Bilder, die ich habe.
brauchen Sie wirklich alle die Geschichte von chat zur Laufzeit, oder Sie pflegen diese chat-Geschichte in array oder collection-Objekt oder der Listen-Ansicht ist zu groß. Sie können dynamisch wachsende Liste anzeigen .
bei com.live2support.CustomHttpClient.executeHttpPost1(CustomHttpClient.java:163) - Sie sind etwas zu tun, dass occupy eine gute Menge an Speicher jedes mal..versuchen zu befreien, dass der Speicher so schnell du das..auch überall die Objekte der arraylist,bitmaps löschen aus dem Speicher, sobald Sie es verwenden..einmal verwenden, weisen Sie null-und Ruf-System.gc(); angeben, ein flag zum garbage collector.

InformationsquelleAutor nikki | 2012-03-22

Schreibe einen Kommentar