Here is the part of logcat when it force closes becourse of the memory.
And it is pointing at:
xml = EntityUtils.toString(httpEntity, "UTF-8");
07-30 05:30:58.179: D/dalvikvm(10021): GC_CONCURRENT freed 1191K, 5% free
30775K/32100K, paused 100ms+176ms, total 1294ms
07-30 05:30:58.179: D/dalvikvm(10021): WAIT_FOR_CONCURRENT_GC blocked 601ms
07-30 05:31:05.857: I/dalvikvm-heap(10021): Clamp target GC heap from
32.854MB to 32.000MB
07-30 05:31:05.857: D/dalvikvm(10021): GC_CONCURRENT freed 1161K, 4% free
31468K/32764K, paused 100ms+112ms, total 1190ms
07-30 05:31:05.865: D/dalvikvm(10021): WAIT_FOR_CONCURRENT_GC blocked 474ms
07-30 05:31:10.836: I/dalvikvm-heap(10021): Clamp target GC heap from
33.298MB to 32.000MB
07-30 05:31:10.845: D/dalvikvm(10021): GC_CONCURRENT freed 704K, 3% free
31922K/32764K, paused 123ms+109ms, total 1191ms
07-30 05:31:10.845: D/dalvikvm(10021): WAIT_FOR_CONCURRENT_GC blocked 478ms
07-30 05:31:14.015: I/dalvikvm-heap(10021): Clamp target GC heap from
33.551MB to 32.000MB
07-30 05:31:14.015: D/dalvikvm(10021): GC_CONCURRENT freed 457K, 2% free
32182K/32768K, paused 4ms+109ms, total 992ms
07-30 05:31:14.015: D/dalvikvm(10021): WAIT_FOR_CONCURRENT_GC blocked 584ms
07-30 05:31:16.425: I/dalvikvm-heap(10021): Clamp target GC heap from
33.723MB to 32.000MB
07-30 05:31:16.425: D/dalvikvm(10021): GC_CONCURRENT freed 280K, 2% free
32358K/32768K, paused 132ms+12ms, total 1066ms
07-30 05:31:16.435: D/dalvikvm(10021): WAIT_FOR_CONCURRENT_GC blocked 422ms
07-30 05:31:18.505: I/dalvikvm-heap(10021): Clamp target GC heap from
33.883MB to 32.000MB
07-30 05:31:18.515: D/dalvikvm(10021): GC_CONCURRENT freed 114K, 1% free
32522K/32768K, paused 121ms+16ms, total 1201ms
07-30 05:31:18.515: D/dalvikvm(10021): WAIT_FOR_CONCURRENT_GC blocked 500ms
07-30 05:31:19.335: I/dalvikvm-heap(10021): Clamp target GC heap from
33.867MB to 32.000MB
07-30 05:31:19.335: D/dalvikvm(10021): GC_CONCURRENT freed 58K, 1% free
32505K/32768K, paused 103ms+111ms, total 729ms
07-30 05:31:19.347: D/dalvikvm(10021): WAIT_FOR_CONCURRENT_GC blocked 618ms
07-30 05:31:19.905: I/dalvikvm-heap(10021): Clamp target GC heap from
33.844MB to 32.000MB
07-30 05:31:19.905: D/dalvikvm(10021): GC_FOR_ALLOC freed 36K, 1% free
32482K/32768K, paused 554ms, total 555ms
07-30 05:31:21.115: I/dalvikvm-heap(10021): Clamp target GC heap from
33.933MB to 32.000MB
07-30 05:31:21.115: D/dalvikvm(10021): GC_CONCURRENT freed 62K, 1% free
32573K/32768K, paused 97ms+111ms, total 1190ms
07-30 05:31:21.115: D/dalvikvm(10021): WAIT_FOR_CONCURRENT_GC blocked 530ms
07-30 05:31:21.855: I/dalvikvm-heap(10021): Clamp target GC heap from
33.951MB to 32.000MB
07-30 05:31:21.855: D/dalvikvm(10021): GC_CONCURRENT freed 41K, 1% free
32591K/32768K, paused 106ms+15ms, total 706ms
07-30 05:31:21.855: D/dalvikvm(10021): WAIT_FOR_CONCURRENT_GC blocked 506ms
07-30 05:31:22.855: I/dalvikvm-heap(10021): Clamp target GC heap from
33.962MB to 32.000MB
07-30 05:31:22.855: D/dalvikvm(10021): GC_CONCURRENT freed 30K, 1% free
32603K/32768K, paused 72ms+108ms, total 963ms
07-30 05:31:22.865: D/dalvikvm(10021): WAIT_FOR_CONCURRENT_GC blocked 591ms
07-30 05:31:23.795: I/dalvikvm-heap(10021): Clamp target GC heap from
33.975MB to 32.000MB
07-30 05:31:23.795: D/dalvikvm(10021): GC_CONCURRENT freed 9K, 1% free
32616K/32768K, paused 188ms+108ms, total 919ms
07-30 05:31:23.805: D/dalvikvm(10021): WAIT_FOR_CONCURRENT_GC blocked 605ms
07-30 05:31:23.805: I/dalvikvm-heap(10021): Forcing collection of
SoftReferences for 8208-byte allocation
07-30 05:31:24.435: I/dalvikvm-heap(10021): Clamp target GC heap from
33.963MB to 32.000MB
07-30 05:31:24.435: D/dalvikvm(10021): GC_BEFORE_OOM freed 14K, 1% free
32602K/32768K, paused 635ms, total 635ms
07-30 05:31:25.335: I/dalvikvm-heap(10021): Clamp target GC heap from
33.971MB to 32.000MB
07-30 05:31:25.335: D/dalvikvm(10021): GC_CONCURRENT freed <1K, 1% free
32610K/32768K, paused 78ms+134ms, total 899ms
07-30 05:31:25.345: D/dalvikvm(10021): WAIT_FOR_CONCURRENT_GC blocked 810ms
07-30 05:31:25.345: I/dalvikvm-heap(10021): Forcing collection of
SoftReferences for 8208-byte allocation
07-30 05:31:25.965: I/dalvikvm-heap(10021): Clamp target GC heap from
33.970MB to 32.000MB
07-30 05:31:25.965: D/dalvikvm(10021): GC_BEFORE_OOM freed <1K, 1% free
32609K/32768K, paused 626ms, total 626ms
07-30 05:31:25.965: E/dalvikvm-heap(10021): Out of memory on a 8208-byte
allocation.
07-30 05:31:25.975: I/dalvikvm(10021): "Thread-146" prio=5 tid=17 RUNNABLE
07-30 05:31:25.975: I/dalvikvm(10021): | group="main" sCount=0 dsCount=0
obj=0x40dc52e8 self=0x2a2741e0
07-30 05:31:25.975: I/dalvikvm(10021): | sysTid=10067 nice=0 sched=0/0
cgrp=apps handle=707210376
07-30 05:31:25.975: I/dalvikvm(10021): | state=R schedstat=( 71547557653
165144938167 13457 ) utm=6837 stm=317 core=0
07-30 05:31:25.975: I/dalvikvm(10021): at
org.apache.http.util.CharArrayBuffer.<init>(CharArrayBuffer.java:~55)
07-30 05:31:25.975: I/dalvikvm(10021): at
org.apache.http.util.EntityUtils.toString(EntityUtils.java:131)
07-30 05:31:25.975: I/dalvikvm(10021): at
com.example.androidtablayout.StringActivity$4.run(StringActivity.java:323)
07-30 05:31:26.099: W/dalvikvm(10021): threadid=17: thread exiting with
uncaught exception (group=0x40a71930)
07-30 05:31:26.105: E/AndroidRuntime(10021): FATAL EXCEPTION: Thread-146
07-30 05:31:26.105: E/AndroidRuntime(10021): java.lang.OutOfMemoryError
07-30 05:31:26.105: E/AndroidRuntime(10021): at
org.apache.http.util.CharArrayBuffer.<init>(CharArrayBuffer.java:55)
07-30 05:31:26.105: E/AndroidRuntime(10021): at
org.apache.http.util.EntityUtils.toString(EntityUtils.java:131)
07-30 05:31:26.105: E/AndroidRuntime(10021): at
com.example.androidtablayout.StringActivity$4.run(StringActivity.java:323)
Den måndagen den 29:e juli 2013 kl. 08:22:12 UTC+2 skrev Kristoffer:
>
> Hello.
> Iam having trouble with memory leak it will finaly cause the app to force
> close.
> I have stripped down my code just to find where the problem is and i
> located it to my httpclient.
>
> When i run this code iam geting many GC_Concurrent freed.
> if i add a Thread.sleep(1000); then i will ofcourse get less warnings but
> my guess is that there is still some problem with the code i run.
> Is there a way i could prevent the problem.
>
> Here is the code:
>
> Thread c = new Thread() {
> @Override
> public void run() {
> String xml;
> UsernamePasswordCredentials creds = new
> UsernamePasswordCredentials("username", "password");
> HttpGet httpGet;
> HttpClient httpClient;
> HttpResponse httpResponse;
> HttpEntity httpEntity;
> while (RunThread) {
>
> try {
> httpClient = HttpClientFactory.getThreadSafeClient();
> httpGet = new HttpGet("http://ipaddress/list?format=xml");
> httpGet.addHeader(new BasicScheme().authenticate(creds,
> httpGet));
> httpResponse = httpClient.execute(httpGet);
> httpEntity = httpResponse.getEntity();
> xml = EntityUtils.toString(httpEntity, "UTF-8");
>
>
> } catch (Exception e) {
> e.printStackTrace();
>
> }
> }
> };
> c.start();
> }
>
> And here is the class HttpClientFactory
>
> public class HttpClientFactory {
>
> private static DefaultHttpClient client;
>
> public synchronized static DefaultHttpClient getThreadSafeClient() {
>
> if (client != null)
> return client;
>
> client = new DefaultHttpClient();
>
> ClientConnectionManager mgr = client.getConnectionManager();
>
> HttpParams params = client.getParams();
> params.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,
> 10000);
> params.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 10000);
> client = new DefaultHttpClient(
> new ThreadSafeClientConnManager(params,
> mgr.getSchemeRegistry()), params);
>
> return client;
> }
> }
>
>
> Have a made some huge mistage in the code that is causing this issue?
>
--
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
---
You received this message because you are subscribed to the Google Groups
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.