我在logcat上遇到了一些非致命错误,但没有行号或其他任何可以帮我找到错误的错误。
正如你所看到的,我得到了几个,包括Cursor finalized without prior close()
和Window is full
,但不知道如何找到它们。
09-26 14:20:47.743: W/CursorWindow(2090): Window is full: requested allocation 756 bytes, free space 150 bytes, window size 2097152 bytes
09-26 14:20:48.151: D/dalvikvm(2090): GC_FOR_ALLOC freed 1686K, 3% free 90204K/92076K, paused 108ms, total 112ms
09-26 14:20:48.159: W/CursorWrapperInner(2090): Cursor finalized without prior close()
09-26 14:20:48.163: W/CursorWrapperInner(2090): Cursor finalized without prior close()
09-26 14:20:49.759: D/dalvikvm(2090): GC_FOR_ALLOC freed 910K, 2% free 91343K/92436K, paused 115ms, total 115ms
09-26 14:20:51.127: D/dalvikvm(2090): GC_FOR_ALLOC freed 731K, 1% free 92661K/93576K, paused 70ms, total 70ms
09-26 14:20:52.195: D/dalvikvm(2090): GC_FOR_ALLOC freed 683K, 1% free 94024K/94892K, paused 71ms, total 71ms
09-26 14:20:53.303: D/dalvikvm(2090): GC_FOR_ALLOC freed 713K, 1% free 95360K/96256K, paused 77ms, total 77ms
09-26 14:20:54.403: D/dalvikvm(2090): GC_FOR_ALLOC freed 706K, 1% free 96702K/97592K, paused 84ms, total 84ms
09-26 14:20:54.755: W/CursorWindow(2090): Window is full: requested allocation 756 bytes, free space 645 bytes, window size 2097152 bytes
09-26 14:20:55.559: D/dalvikvm(2090): GC_FOR_ALLOC freed 752K, 1% free 98000K/98936K, paused 76ms, total 76ms
任何提示?
谢谢!
答案 0 :(得分:0)
这种错误不是程序抛出的异常,因此不包含堆栈跟踪。作为一般经验法则,您可以通过仔细阅读错误消息并阅读有关错误的主题来找到优化代码的方法。
据我所知,内存分配存在问题。我不认为你可以将它们指向执行流程中的特定位置,因为它可能会在执行的不同点发生。您可以考虑一下代码,看看是否可以找到一些内存优化的可能性。
如果您想彻底分析代码,可能需要使用像Eclipse MAT'这样的工具。阅读此tutorial以了解如何使用该工具
答案 1 :(得分:0)
执行全局文件搜索,在.java文件中查找“.query(”等文本。
这应该会引导您返回光标所在的位置,从那里您应该能够确定它们未被关闭的位置。