Genymotion でアプリがクラッシュ

Genymotion で Cocos2d-x アプリを実行すると、クラッシュしました。

状況

  1. Cocos2d-x プロジェクトを新規作成
    cocos new TestingProject -p com.TestingProject -l cpp
  2. Genymotion のエミュレーター用に proj.android/jni/Application.mk の設定を変更
    APP_ABI := x86
  3. Cocos2d-x プロジェクトを実行
    cocos run -p android
  4. アプリが強制終了
    Fatal signal 11 (SIGSEGV) at 0x00000000 (code=128)

環境

Cocos2d-x 3.10
Android SDK API level 15
Android NDK r9d
Apache ANT 1.9.7

原因

Android SDK API level 15 と x86 の組み合わせ

対応

  1. コンパイル時に、SDK 15 以外のインストール済み Android SDK を指定します。
    cocos run -p android -ap android-20
  2. (ProjectName)/proj.android/jni/Application.mk に設定を追加
    APP_CPPFLAGS += -U__SSE__

参考

https://github.com/sqlcipher/android-database-sqlcipher/issues/200
https://github.com/cocos2d/cocos2d-x/issues/8964