LoginSignup
7
6

More than 5 years have passed since last update.

Cocos2d-x+GenymotionでFatal signal 11 (SIGSEGV)が出た

Posted at

hiroyasuさんのGemymotionをcocos2dx3.0rc0で試すの派生記事になります。
(Qiita的には派生記事を書く良い方法があるのかもしれないけど、とりあえずメモレベルで)

ここまでは元記事と同じです。

新規プロジェクトを作成して、Gemymotionを起動し、何も考えずにcocosコマンドでビルドすると

cocos run -p android

次のようなエラーがでます。

INSTALL_FAILED_CPU_ABI_INCOMPATIBLE

Genymotionはx86で動作するので、x86でビルドする必要があります。
変更するファイルは次の通りです。



で、Application.mkなんですけど、元記事から、

  1. armeabiを削除(x86だけでOK コンパイル不要だと思われる)
  2. APP_CPPFLAGSに'-U__SSE__'を追加 

'-U__SSE__'の方ですが、これがないと

Fatal signal 11 (SIGSEGV) at 0x00000000 (code=128) ( on Android x86)

みたいなエラーが出た。「SSE issue on x86」にそれっぽいことが書いてある。U__SSE__が何を意味するのかはよく分かっていないです。'_'が入ってるからか、U__SSE__でぐぐってもほぼヒットせず。

最終的なApplication.mkはこうなった。

jni/Application.mk
APP_STL := gnustl_static
APP_ABI := x86
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1 -std=c++11 -fsigned-char -U__SSE__

あと、これもどう作動するかは分からないがネットに情報があったので適用させてある。

Cocos2dxActivity.javaのisAndroidEmulatorメソッド
isEmulator = product.equals(“sdk”) || product.contains(“sdk”) || product.contains(“sdk“) || product.contains(“vbox”);

これで自分のところはCocos2d-xのサンプルが動きました。

実行環境
Cocos2d-x v3.4
Android SDK 5.0.1(API 21)
Android NDK r9d
Genymotion 2.3.1

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6