虚拟机中止:在0x00001247处发生致命信号6(SIGABRT)(代码为-6)。

6
我正在使用Eclipse棒棒糖版本。
我遇到了这个错误:
VM中止 致命信号6(SIGABRT)在0x00001247处(代码=-6)
下面是完整的堆栈跟踪:
StackTrace:
01-30 04:11:43.053: E/dalvikvm(4679): VM aborting

01-30 04:11:43.053: A/libc(4679): Fatal signal 6 (SIGABRT) at 0x00001247 (code=-6), thread 4679 (e.quranmadeeasy)

01-30 04:11:43.541: D/dalvikvm(4749): GC_FOR_ALLOC freed 124K, 6% free 3345K/3528K, paused 2ms, total 2ms
01-30 04:11:43.541: I/dalvikvm-heap(4749): Grow heap (frag case) to 4.395MB for 1127532-byte allocation
01-30 04:11:43.541: D/dalvikvm(4749): GC_FOR_ALLOC freed 0K, 4% free 4446K/4632K, paused 1ms, total 1ms

Logcat没有指出错误行,所以我不知道如何解决这个错误。我尝试了这个答案,但对我没有帮助。非常感谢任何帮助。谢谢。


1
如果在libc中崩溃,请检查您是否在本地代码中尝试释放空指针。 - samgak
2个回答

2

您的应用程序是否使用本地方法?您能获取DEBUG堆栈吗?它将在logcat上输出,或者您可以在/data/tombstones中找到它。如果找到了,您可以获得像这样的信息

backtrace:
#00  pc 0000d1a0  /system/lib/libc.so (write+12)
#01  pc 0001aac1  /system/lib/libc.so (__sflush+48)
#02  pc 0001bad7  /system/lib/libc.so (_fwalk+30)
#03  pc 0001f0d9  /system/lib/libc.so (__cxa_finalize+132)
#04  pc 0001f40b  /system/lib/libc.so (exit+6)
#05  pc 00016f9d  /system/lib/libc.so (__libc_init+40)
#06  pc 000040a4  /system/bin/toolbox

然后,您可以使用addr2line在代码中确定问题的位置。有关addr2line的更多信息,请参阅此处:如何在Android中使用addr2line


1

Texview内容超出了gridview表格大小,导致致命异常。我在数据库中减少了Texview的内容,并解决了这个错误。


只有这样的答案,才能让你理解发生了什么。我遇到了完全相同的错误,但是它真的很随机,并且在不同的测试用例上崩溃。那么你能否以更详细的方式回答问题是什么? - X-HuMan
@karate 对我来说,一个单元格中有更多的文本视图内容。因此,它超出了特定内容的大小。删除更多内容后,问题得到解决。 - Stephen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接