您的位置:首页 > 产品设计 > UI/UE

[已解决]Could not allocate CursorWindow '' of size of size 2097152 due to error -12.

2016-07-28 21:29 1211 查看
Could not allocate CursorWindow '/data/data/com.wbm.app.activity/databases/cashierDB.db' of size 2097152 due to error -12.

07-26 16:28:14.067 9407-9654/? W/System.err: android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. 

07-26 16:28:14.067 9407-9654/? W/System.err:     at android.database.CursorWindow.<init>(CursorWindow.java:104)

07-26 16:28:14.067 9407-9654/? W/System.err:     at android.database.AbstractWindowedCursor.clearOrCreateWindow(AbstractWindowedCursor.java:198)

07-26 16:28:14.067 9407-9654/? W/System.err:     at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:139)

07-26 16:28:14.067 9407-9654/? W/System.err:     at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133)

07-26 16:28:14.067 9407-9654/? W/System.err:     at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:197)

07-26 16:28:14.067 9407-9654/? W/System.err:     at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:237)

07-26 16:28:14.067 9407-9654/? W/System.err:     at org.litepal.crud.DataHandler.query(DataHandler.java:126)

07-26 16:28:14.067 9407-9654/? W/System.err:     at org.litepal.crud.QueryHandler.onFind(QueryHandler.java:154)

07-26 16:28:14.067 9407-9654/? W/System.err:     at org.litepal.crud.ClusterQuery.find(ClusterQuery.java:212)

07-26 16:28:14.067 9407-9654/? W/System.err:     at org.litepal.crud.ClusterQuery.find(ClusterQuery.java:188)

07-26 16:28:14.067 9407-9654/? W/System.err:     at com.wbm.app.business.service.RetailOrderService.findRetailOrderByTidOrOutId(RetailOrderService.java:471)

07-26 16:28:14.067 9407-9654/? W/System.err:     at com.wbm.app.business.schedule.ScheduleTaskSchedule.orderCreateSync2Cloud(ScheduleTaskSchedule.java:149)

07-26 16:28:14.067 9407-9654/? W/System.err:     at com.wbm.app.business.schedule.ScheduleTaskSchedule$8.run(ScheduleTaskSchedule.java:259)

07-26 16:28:14.067 9407-9654/? W/System.err:     at java.lang.Thread.run(Thread.java:841)

07-26 16:28:14.567 9407-9631/? E/CursorWindow: Could not allocate CursorWindow '/data/data/com.wbm.app.activity/databases/cashierDB.db' of size 2097152 due to error -12.

07-26 16:28:14.567 9407-9631/? W/System.err: android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. 

07-26 16:28:14.567 9407-9631/? W/System.err:     at android.database.CursorWindow.<init>(CursorWindow.java:104)

07-26 16:28:14.567 9407-9631/? W/System.err:     at android.database.AbstractWindowedCursor.clearOrCreateWindow(AbstractWindowedCursor.java:198)

07-26 16:28:14.567 9407-9631/? W/System.err:     at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:139)

07-26 16:28:14.567 9407-9631/? W/System.err:     at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133)

07-26 16:28:14.567 9407-9631/? W/System.err:     at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:197)

07-26 16:28:14.567 9407-9631/? W/System.err:     at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:237)

07-26 16:28:14.567 9407-9631/? W/System.err:     at org.litepal.crud.DataHandler.query(DataHandler.java:126)

07-26 16:28:14.567 9407-9631/? W/System.err:     at org.litepal.crud.QueryHandler.onFind(QueryHandler.java:154)

07-26 16:28:14.567 9407-9631/? W/System.err:     at org.litepal.crud.ClusterQuery.find(ClusterQuery.java:212)

07-26 16:28:14.567 9407-9631/? W/System.err:     at org.litepal.crud.ClusterQuery.find(ClusterQuery.java:188)

07-26 16:28:14.567 9407-9631/? W/System.err:     at com.wbm.app.business.service.AssociateReportService.findAssociateReportByAccount(AssociateReportService.java:161)

07-26 16:28:14.567 9407-9631/? W/System.err:     at com.wbm.app.business.service.AssociateReportService.currentCashierAdd(AssociateReportService.java:23)

07-26 16:28:14.567 9407-9631/? W/System.err:     at com.wbm.app.business.service.RetailOrderService$3.doInTransaction(RetailOrderService.java:298)

07-26 16:28:14.567 9407-9631/? W/System.err:     at com.wbm.app.business.transaction.CarriageTransactionTemplate.execute(CarriageTransactionTemplate.java:21)

07-26 16:28:14.567 9407-9631/? W/System.err:     at com.wbm.app.business.service.RetailOrderService.save(RetailOrderService.java:236)

07-26 16:28:14.567 9407-9631/? W/System.err:     at com.wbm.app.activity.SettlementActivity$17$3.run(SettlementActivity.java:751)

07-26 16:28:14.567 9407-9631/? W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)

07-26 16:28:14.567 9407-9631/? W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)

07-26 16:28:14.567 9407-9631/? W/System.err:     at java.lang.Thread.run(Thread.java:841)

07-26 16:28:14.577 9407-9631/? W/dalvikvm: threadid=23: thread exiting with uncaught exception (group=0x415612e8)

07-26 16:28:14.607 9407-9631/? E/AndroidRuntime: FATAL EXCEPTION: pool-5-thread-1

                                                 Process: com.wbm.app.activity, PID: 9407

                                                 org.litepal.exceptions.DataSupportException: Cursor window allocation of 2048 kb failed. 

                                                     at com.wbm.app.business.transaction.CarriageTransactionTemplate.execute(CarriageTransactionTemplate.java:26)

                                                     at com.wbm.app.business.service.RetailOrderService.save(RetailOrderService.java:236)

                                                     at com.wbm.app.activity.SettlementActivity$17$3.run(SettlementActivity.java:751)

                                                     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)

                                                     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)

                                                     at java.lang.Thread.run(Thread.java:841)

原因分析:

经过上网查找资料以及自己的分析,这个是因为Out Of Memery,

而导致这个内存溢出的原因,我这里是因为我这里为了测试断网的状态下软件的情况,所以网络是断开的,这个时候,我的一部分代码会发送上千条的网络请求,

所以这个直接导致我的软件挂掉了,并且报了这个错误。

所以我这里的解决的办法就是减少网络请求的数量。

分析的过程:

主要是通过android studio 自带的工具

[置顶] 【Android】查看程序每个方法所花费的时间

点击我们要测试的app,然后点击上面的update Thread,然后看右边的那一栏就可以看到当前的线程了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: