Android SyncAdapter中引发的CursorWindowAllocationException

Android SyncAdapter中引发的CursorWindowAllocationException,android,Android,我偶尔会在SyncAdapter类中引发以下异常。我认为我正确地关闭了所有游标。抛出此异常的原因是否有其他解释?或者我肯定在某个地方丢失了游标.close() Fatal Exception: android.database.CursorWindowAllocationException: Cursor window could not be created from binder. at android.database.CursorWindow.<init>(Cu

我偶尔会在SyncAdapter类中引发以下异常。我认为我正确地关闭了所有游标。抛出此异常的原因是否有其他解释?或者我肯定在某个地方丢失了游标.close()

Fatal Exception: android.database.CursorWindowAllocationException: Cursor window could not be created from binder.
       at android.database.CursorWindow.<init>(CursorWindow.java:150)
       at android.database.CursorWindow.<init>(CursorWindow.java:42)
       at android.database.CursorWindow$1.createFromParcel(CursorWindow.java:698)
       at android.database.CursorWindow$1.createFromParcel(CursorWindow.java:696)
       at android.database.BulkCursorDescriptor.readFromParcel(BulkCursorDescriptor.java:75)
       at android.database.BulkCursorDescriptor$1.createFromParcel(BulkCursorDescriptor.java:34)
       at android.database.BulkCursorDescriptor$1.createFromParcel(BulkCursorDescriptor.java:30)
       at android.content.ContentProviderProxy.query(ContentProviderNative.java:424)
       at android.content.ContentProviderClient.query(ContentProviderClient.java:161)
       at android.content.ContentProviderClient.query(ContentProviderClient.java:123)
       at com.forever.forever.Utils.sync.SyncAdapter.getNextItemInUploadQueue(SyncAdapter.java:799)
       at com.forever.forever.Utils.sync.SyncAdapter.proccessUploads(SyncAdapter.java:697)
       at com.forever.forever.Utils.sync.SyncAdapter.onPerformSync(SyncAdapter.java:199)
       at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:272)
致命异常:android.database.CursorWindowAllocationException:无法从活页夹创建光标窗口。
位于android.database.CursorWindow(CursorWindow.java:150)
位于android.database.CursorWindow(CursorWindow.java:42)
位于android.database.CursorWindow$1.createFromParcel(CursorWindow.java:698)
位于android.database.CursorWindow$1.createFromParcel(CursorWindow.java:696)
位于android.database.BulkCursorDescriptor.readFromParcel(BulkCursorDescriptor.java:75)
位于android.database.BulkCursorDescriptor$1.createFromParcel(BulkCursorDescriptor.java:34)
位于android.database.BulkCursorDescriptor$1.createFromParcel(BulkCursorDescriptor.java:30)
位于android.content.ContentProviderProxy.query(ContentProviderNative.java:424)
位于android.content.ContentProviderClient.query(ContentProviderClient.java:161)
位于android.content.ContentProviderClient.query(ContentProviderClient.java:123)
在com.forever.forever.Utils.sync.SyncAdapter.getNextItemInUploadQueue(SyncAdapter.java:799)上
在com.forever.forever.Utils.sync.SyncAdapter.proccessUploads(SyncAdapter.java:697)上
位于com.forever.forever.Utils.sync.SyncAdapter.onPerformSync(SyncAdapter.java:199)
位于android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:272)

通过将以下代码段添加到我的应用程序onCreate()中,我可以找到其他可关闭的漏洞:

它记录了一些我能够修复的漏洞。这是一个非常有用的开发工具

    if(BuildConfig.DEBUG){
        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                .detectLeakedSqlLiteObjects()
                .detectLeakedClosableObjects()
                .penaltyLog()
                .build());
    }