× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
cocos2d-xですでに作っているプロジェクトの
cocos2d-xのバージョンアップをするのは、少し手がかかる 特に、3.7より古いバージョンで作ったゲームを 3.7移行で対応されたandroid-studioに対応したい時はどうするのか。 通常、cocosプロジェクトのルートに 各プラットフォーム向けのディレクトリがある proj.ios_mac proj.android などなど。 これらは、最初にプロジェクトを作る時に $ cocos2d-x-3.7/setup.py を実行することで作られる。 後からこれを実行することはできない(できるかもしれないがどうなるかわからない) 1. cocos2d-x-3.7/templates/cpp-template-default/proj.android-studio/ ディレクトリを、自分のプロジェクトにまるっとコピー 2. AndroidManifest.xmlを、 proj.android/からまるっとコピー 3. とりあえずコンパイルしてみる $ cd PROJ_DIR/proj.android-studio $ cocos compile -p android --android-studio エラーが出る。
4. build.gradleのapplicationIdがデフォルトのままなので AndroidManifest.xmlのpackageと同じ名前に変更 ついでに、defaultConfig 関連の設定を全部proj.androidと同じに揃える(sdkVersionなど) 5. 再度コンパイル。 先ほどのエラーはなくなった 次のエラーは
cocos2d-xのライブラリのインクルード指定をする必要がある 6. Android.mkのcocosライブラリインクルード周りを見てみる。 が、デフォルトでextension周りはインクルードされているようだ。 ついでなので、
を記述。 またApplication.mkに
を記述 7. コンパイル。 まだ同じところでエラー。 8. インクルードパスを指定するような場所を探す。 とりあえずProject StructureでNDKパスを以下に指定 /path/to/android/SDK/ndk-bundle SDKは /path/to/android/SDK JDKは /Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home しかしそのほかにインクルードパスを指定するようなところがない インクルードパスを指定というより、 そのソースを含むlibcocos2dxライブラリの登録が必要なのか 9. 通常の手順で作られたcocos2dx用のandroid-studioプロジェクトには、libcocos2dxモジュールがプロジェクトビューに表示されている。 これは、 GAME_DIR/cocos2d/cocos/platform/android/libcocos2dx ディレクトリである。 これを追加してみる。 cocos2d-x-3.7で作ったことのあるcocos2d-xプロジェクトから、 GAME_DIR/cocos2d/cocos/platform/androidディレクトリをまるっと上書きコピー その上で、libcocos2dxを追加する …と、ここまで来て プロジェクトにモジュールを追加できなかった(追加するとき、libcocos2dxをプロジェクトとして追加してしまったようだ) プロジェクト構成がおかしくなり、プロジェクトやディレクトリそのものを削除して再作成しても治らなくなった そこで、結局新しいディレクトリでcocosプロジェクトごと新たに作ることにした $ cocos new PROJ_NAME -p PACKAGE_NAME -l cpp 元のproj.androidから、新しいproj.android-studioにコピーするもの Classes/ Resources/ proj.android/AndroidManifest.xml proj.android/jni/ proj.android/app/src/ proj.android/libs/ ここまでコピーしたら、一度コンパイルしてみる $ cocos compile -p android --android-studio また、androidStudioだと、c++のスタティックライブラリにstring系が含まれていないので、 その対応も行う 参考 その他にやること 各種ライブラリをコピー Analyticsに関して、 app_tracker.xml EasyTrackerをAnalyticsApplicationに変更 など PR |
|