致命信号7(SIGBUS)在0x00000000处(代码=2)

12

在Android上使用OSGi平台时,我遇到了以下错误信息:

Fatal signal 7 (SIGBUS) at 0x595302e0 (code=2)

致命信号7(SIGBUS),位于0x595302e0处(代码=2)

我认为我的应用程序不需要那么多的内存空间或需要大量的计算能力。它只是带有20个Bundle的OSGi平台。

我的应用程序总是在此之后重新启动。

有任何想法吗?


你好,我一直在遇到同样的错误.. 有什么进展吗?libc(16581):致命信号7(SIGBUS)在0xab5a4068处(code=2),线程16590(FinalizerDaemon)。 - user1140237
不好意思,没有进展。 - Rob Anderson
好的 :( 谢谢 :) ... 你能告诉我你在哪里遇到了这个错误吗? - user1140237
3个回答

1

我也遇到了类似的问题,错误代码为128,似乎是数据对齐错误。为了解决这个问题,我尝试添加了以下代码:

    *Data = (*Data)(Temp+i) becomes     
    Temp1 = *(Temp+i);     
    *Data = Temp1;     

在调用函数之前和之后,使用同样的方法传递数据。不过,由于某种原因,NDK编译器的工作方式有所不同。而且NDK被用来混合编写C和C++代码。

1
我遇到了相同的问题。这是由drawable文件夹中的一个png文件引起的。我只是去查看最大的图片是什么,找到它并删除了它,用更小的图片替换后,问题就解决了。

0

这是一个与数据对齐有关的问题,正如错误代码所示。你的代码中的某些部分或者你正在使用的库中的代码可能没有将数据结构放在正确的位置上 - 然而,这可能是由很多原因引起的,比如一个应该返回结果但却没有返回的函数。


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