Problem with Aquery Android on Android 4.4 Kitkat

I get the problem due to the Aquery library for lazily loading images on Android 4.4 Kitkat only when scrolling paginated GridView / ListView images.

The following are the logs:

12-03 10:39:43.678: W/AQuery(6261): reporting:java.io.IOException: open failed: EMFILE (Too many open files)
12-03 10:39:43.678: W/AQuery(6261): at java.io.File.createNewFile(File.java:946)
12-03 10:39:43.678: W/AQuery(6261): at com.androidquery.callback.AbstractAjaxCallback.getPreFile(AbstractAjaxCallback.java:1150)
12-03 10:39:43.678: W/AQuery(6261): at com.androidquery.callback.AbstractAjaxCallback.httpDo(AbstractAjaxCallback.java:1609)
12-03 10:39:43.678: W/AQuery(6261): at com.androidquery.callback.AbstractAjaxCallback.httpGet(AbstractAjaxCallback.java:1344)
12-03 10:39:43.678: W/AQuery(6261): at com.androidquery.callback.AbstractAjaxCallback.network(AbstractAjaxCallback.java:1243)
12-03 10:39:43.678: W/AQuery(6261): at com.androidquery.callback.AbstractAjaxCallback.networkWork(AbstractAjaxCallback.java:1082)
12-03 10:39:43.678: W/AQuery(6261): at com.androidquery.callback.AbstractAjaxCallback.backgroundWork(AbstractAjaxCallback.java:1014)
12-03 10:39:43.678: W/AQuery(6261): at com.androidquery.callback.AbstractAjaxCallback.run(AbstractAjaxCallback.java:977)
12-03 10:39:43.678: W/AQuery(6261): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
12-03 10:39:43.678: W/AQuery(6261): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
12-03 10:39:43.678: W/AQuery(6261): at java.lang.Thread.run(Thread.java:841)
12-03 10:39:43.678: W/AQuery(6261): Caused by: libcore.io.ErrnoException: open failed: EMFILE (Too many open files)
12-03 10:39:43.678: W/AQuery(6261): at libcore.io.Posix.open(Native Method)
12-03 10:39:43.678: W/AQuery(6261): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
12-03 10:39:43.678: W/AQuery(6261): at java.io.File.createNewFile(File.java:939)
12-03 10:39:43.678: W/AQuery(6261): ... 10 more

It seems I need to minimize open files on external storage, but how to do it? Any idea ???

+4
source share
3 answers

Android Query releases a different version (0.26.8) to solve this problem: https://code.google.com/p/android-query/wiki/ReleaseNote#0.26.8

+6
source

: , , , . . , .

, . inPurgeable:

InPurgeable BitmapFactory?

, . , ( ).

, .

, , , , .

, .

+2

KitKat. : change options.inInputShareable "true" "false" BitmapAjaxCallback.java , URL-, . inInputShareable , . , a > 1024 , EMFILE . , KitKat:)

P.S. inInputShareable = false inPurgeable = false OOM:( AQuery - BitmapFactory.decodeFileDescriptor BitmapFactory.decodeByteArray ( decodeStream!!! inPurgeable, JavaDocs)

And I found that the problem is due to an error in KitKat: https://code.google.com/p/android/issues/detail?id=65638

+1
source

All Articles