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

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

More than 3 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 do not you register as a user and use Qiita more conveniently?
  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
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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