原生Android应用程序在x86上与SIGILL崩溃

时间:2014-09-07 21:02:04

标签: android android-ndk crash x86 android-x86

我试图在Intel Atom Z2560上启动原生Android应用,但它总是在SIGILL ILL_ILLOPN(非法操作数)信号的同一位置崩溃。

-O0不会发生崩溃。

我使用的编译器是NDK r10的GCC 4.8。我试图将-march设置为原子,但这并没有改变任何东西。

任何人都知道如何配置我的构建脚本,以便不会生成不兼容的代码?

1 个答案:

答案 0 :(得分:2)

这是NDK r10中的已知错误,有关详细信息,请参阅http://b.android.com/73843。要避免此问题,请使用较旧的NDK版本,或者在Android.mk中添加(如此类似):

ifeq ($(TARGET_ARCH_ABI), x86)
LOCAL_CFLAGS += -m32 # NDK r10 x86 bug workaround - http://b.android.com/73843
endif