hiroyasuさんのGemymotionをcocos2dx3.0rc0で試すの派生記事になります。
(Qiita的には派生記事を書く良い方法があるのかもしれないけど、とりあえずメモレベルで)
ここまでは元記事と同じです。
新規プロジェクトを作成して、Gemymotionを起動し、何も考えずにcocosコマンドでビルドすると
cocos run -p android
次のようなエラーがでます。
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
Genymotionはx86で動作するので、x86でビルドする必要があります。
変更するファイルは次の通りです。
*
*
*
で、Application.mkなんですけど、元記事から、
- armeabiを削除(x86だけでOK コンパイル不要だと思われる)
- 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はこうなった。
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__
あと、これもどう作動するかは分からないがネットに情報があったので適用させてある。
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