Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away