私のアプリは、エミュレーターで実行した場合にのみSIGILLフォールトをトリガーします。アプリはActionBarSherlockを使用しており、最小のSDKターゲットはAPIレベル8です。ネイティブコードが実行されると障害がトリガーされます(Javaで記述されたアプリの残りの部分は機能しているようです)。さまざまなエミュレーターのセットアップを試しましたが、成功しませんでした。障害のある特定のコードはありません。障害のある関数にコメントすると、SIGILLは他の関数によって他の時点でトリガーされます。マクロLOGIを使用してコンソールに書き込みを行い、ネイティブコード関数が適切に呼び出されます。何が起こっているのか全くわかりません。アプリは2つの異なる電話で完全に動作しています(android2.3.4を実行しているarmv6rev5とandroid4.0.3を実行しているarmv7rev 9)。ネイティブコードは、Windowsデスクトップシステムで作成およびテストしたライブラリです。そしてそれは問題なく動作しています。ヘルプ!
Android.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)
Application.mk
APP_STL := gnustl_static APP_OPTIM := release APP_CPPFLAGS += -frtti