0

只有当我在模拟器上运行我的应用程序时,它才会触发 SIGILL 错误。该应用程序正在使用 ActionBarSherlock 并且最低 SDK 目标是 API 级别 8。执行本机代码时会触发故障(应用程序的其余部分,用 Java 编写,似乎可以工作)。我尝试了许多不同的模拟器设置,但均未成功。没有特定的代码出错。如果我评论出错的函数,则 SIGILL 会在其他某个点由其他函数触发。我使用宏 LOGI 在控制台上写东西,并且正确调用了本机代码函数。我完全不知道发生了什么。该应用程序在两部不同的手机上完美运行(运行 android 2.3.4 的 armv6 rev 5 和运行 android 4.0.3 的 armv7 rev 9)。本机代码是我在 Windows 桌面系统上编写和测试的库,它工作没有问题。帮助!

安卓.mk

OCAL_PATH := $(call my-dir)    
include $(CLEAR_VARS)    
#LOCAL_CFLAGS     := -DANDROID_NDK -Wno-psabi
LOCAL_C_INCLUDES += png++/ 
LOCAL_C_INCLUDES += libpng/
LOCAL_C_INCLUDES += zlib/
LOCAL_MODULE    := mylib
LOCAL_SRC_FILES := /* a list of .cpp files... */
LOCAL_SRC_FILES += $(wildcard ./*.c)
LOCAL_SRC_FILES += $(wildcard ./zlib/*.c)
LOCAL_SRC_FILES += $(wildcard ./libpng/*.c)
LOCAL_LDLIBS := -llog
LOCAL_LDLIBS += -ljnigraphics
LOCAL_CFLAGS += -marm -march=armv6 -mfloat-abi=softfp -mfpu=vfp -fpermissive -fwrapv -O2 -fexceptions    
include $(BUILD_SHARED_LIBRARY)

应用程序.mk

APP_STL := gnustl_static
APP_OPTIM := release
APP_CPPFLAGS += -frtti
4

1 回答 1

0

我有一个类似的问题。我放弃了尝试模拟器;我认为这与 Android 模拟器上的 ARMv6 支持有关。由于我的也在设备上工作,我不再关心这个问题。

于 2013-08-15T13:22:06.623 回答