utokiteのrecord

その時書きたいことを書く

cocos2d-x 3.2

OS: windows7 Pro

参考: http://wiki.xsqi.net/index.php?%A5%D7%A5%ED%A5%B0%A5%E9%A5%E0%2FCocos2d-x%2FCocos2d-x%B3%AB%C8%AF%B4%C4%B6%AD%A4%CE%B9%BD%C3%DB

 

cocos2d-x 3.2をダウンロードして解凍すると、

でてきたフォルダ/ファイルが読み取り専用かつ暗号化されてた。

なんで?

とりあえず解除。まずかったら後で直す。

 

解凍してできた一番上のフォルダ名を"cocos2d-x-3.2"から"cocos2d-x"に

リネームして、c:\cocos2d-x\cocos2d-x-3.2\build,cocos,,,という配置にする。

 

Python-2.7.8.msiをダウンロード

インストールしてC:\Python27をPathに追加。

 

 Android SDK, NDKを入れる。

よくわからん。

Eclipse ADT Bundleをいれてみる。

adt-bundle-windows-~~みたいな長い名前のフォルダのまま

eclipseを初回起動しちゃったのはまずかった気がする。

今更このフォルダの名前を短くすると怒られる気がする。

 

NDKは一緒じゃなかったようなので別途ダウンロード。

解凍して出てきたフォルダを"ndk"にリネーム。

adt-bundle-windows-~~\に置く。(sdkフォルダと並べた)。

adt-bundle-windows-~~フォルダをPathに追加。

 

ANTもいるっぽいと思ったがeclipseが一緒に入れてくれたのかな?

eclipse\plugin\以下にそれっぽいのがあるようなないような。

 

とりあえずsetup.pyを起動してみる。

Pathはここでいれるのね。。

 入れた。再起動した。

 

D:\projects以下にMyGameプロジェクトを作成するものとして、

コマンドプロンプト

 > cocos new MyGame -p com.MyCompany.MyGame -l cpp -d D:\projects

 と、参考ページに言われるがままに入力。

D:\projects\MyGame\proj.androidに移動して、

build_native.pyを実行。

 なんかぽこぽこwarningがでているんだが。。。

error。だめじゃん。

jni/../../cocos2d/cocos/./3d/CCBundleReader.cpp:94:23: error: return type of
out-of-line definition of 'cocos2d::BundleReader::tell' differs from that
in the declaration
ssize_t BundleReader::tell()

jni/../../cocos2d/cocos/./3d/CCBundleReader.h:90:14: note: previous declaration
is here
long int tell();
なんかNDKのr10使ってると出るバグっぽい。

一番手っ取り早い回避策がNDKをr9dに落とすことだそうな。

r9dないじゃん。

こっちをためす

・Change long int to ssize_t in the declaration of BundleReader::tell(). You can refer to this pull request for detail information.
・Change APP_STL:=c++_static to APP_STL:=c++_shared, add LIBCXX_USE_GABIXX:=true in Application.mk, and modify your java activity code to load libc++_shared.so. You can refer to this commit for more detail information

が、だめ!!

 いや、いやいや、なおすのはCCBundleReader.cppの

BundleReader::tell()の宣言?じゃなくて、CCBundleReader.hのtell()の宣言?

の方だったのかな?

CCBundleReader.hのtell()の型をlong intからssize_tにしたら

事なきを得たかも知れないような気がするが定かではない。

とりあえずerrorコンパイルが止まらなくはなったので、いいかな。

 

eclipse

 ウィンドウ>設定>C/C++>ビルド>環境


名前『NDK_ROOT』

値『C:\Android\android-ndk』

を追加。

ウィンドウ>設定>C/C++>コード解析 で、『Syntax and Semantic Errors』のチェックを外して、

D:\projects\MyGame\cocos2d\cocos\platform\android\java

を、既存コードからのAndroidプロジェクトとして新規プロジェクト追加。

D:\projects\MyGame\proj.androidはインポートで、

既存プロジェクトをワークスペースへ、で追加。

 

ここまできて仮想デバイスもしくは実機がいることに気づく。

 

elcipseで仮想デバイスの用意。

window > AVD Manager > create

 で、できるかなー、と思ったけど、なんかCPUのimage的なものがないらしい。

installしないといけないのかな?よくわからん。つづく。

 

つづき。

eclipse起動してwindow > Abdroid SDK Manager

Androidって今いくつなの?わからないわ。

4.3にすっか。

Android 4.3 (API 18)をまるっとちぇっくしてinstall。

ちょっとした時間がかかるね。艦これの一人目は漣だったんですよ。

あれ?なんかIntell x86 atom system imageだけはいりませんでしたよ?

 

あー。ライセンスが別々だったのですね。ちゃんと読んだ上でそれぞれ

同意できるなら入れてもいい感じみたいです。すごい。

今一番レベル高いのが加賀だけど、嫁にしたいのはやっぱり漣なんだよねぇ。

 

改めてwindow > AVD Manager > create

??targetにAndroid 4.4しか選べないんだが。

なんかまずいのかなぁ。知らんから4.4のあれやこれやを入れる。

で、いれてみたけど変化なし。結局これは、SDK Managerでなんか入れたら

eclipseを再起動しろっていうありがたいあれだったようだ。

 

package explorerのproj.androidに思いっきりびっくりマークが出ているにも

かかわらず右クリック > デバッグ as > android applicationとするも

普通にerrorあるんですけどって言われる。

eclipse右下のwindow?のProblemsってタブを開く。

うーん、わからん。

なんかごちょごちょいじってCleanしてたらエラー消えたわ。

ブログにする意味のなさ。

 

ともあれAndroid仮想マシン

立ち上がりつつあるのを固唾を飲んで見守る。

おっせ‥。

そこまで遅いマシンでもないと思うんだけど、どうなんだろう。

AVD用に諸々チューニングしてあげたほうがいいのかもね。

 

起動したAVDでMyGameを立ち上げようとすると、

Unfortunately, Mygame has stopped.

的なことを言われて起動せず。

 ありがとうございました。