Cocos2d-x 2.2.6をMac OS Sierraで動くようにするまでのメモ
仕事でやってて面白かったので許可を取って公開。
環境
- Cocos2d-x 2.2.6
- Eclipse Oxygen.1a Release (4.7.1a)
- Android NDK, Revision 10e
- Android SDK & tools v24.0.3 のもの一式
- Android Studioとは別に用意
- Eclipseの環境設定で下図のように設定
メモ
プロジェクトの作成
python create_project.py -project MyGame -package com.MyCompany.AwesomeGame -language cpp
Eclipse インストーラからJavaのIDEをインストールして環境変数を設定
Help > Install New SoftWare
Work with
の欄にhttps://dl-ssl.google.com/android/eclipse
を入力
cocos2dxのプロジェクトをインポートとプロジェクト間の依存関係の設定
Import > Andorid > Existing Android Code Into Workspace
でcocos2d-x-2.2.6/cocos2dx
のplatform/andorid/java
をインポートCopy projects into workspace
にチェックしておく
Import > Andorid > Existing Android Code Into Workspace
でcocos2d-x-2.2.6/cocos2dx/ProjectName
をインポートCopy projects into workspace
にチェックしないProjectName
のAndroidManifest.xml 中のminSDKVersion
が小さすぎるので14くらいにあげておく
PackageManager
上でProjectName
の上を右クリックしてProperties > Android
を開き、Libraryのところで、libcocos2dxを指すよう設定するisLibrary
のチェックはしない(アプリプロジェクトにisLibraryのチェックをするとapkが生成されない)
アプリ側のプロジェクトのLinked Resourcesの修正
- プロジェクトのところで右クリックして
Properteis > Resources > Linked Resources
のLinked Resources
のタブを確認。Classes
,cocos2dx
,extensions
,scropting
の壊れているパスを修正
古めのNDKを用意してNDK_ROOTの環境変数を設定
- 古めのNDK(Android NDK, Revision 10e)を https://developer.android.com/ndk/downloads/older_releases.html からDL
Eclipse
のPreferences > Android > NDK
の項目の NDK LocationにDLしてきたNDKを配置したパスを書く
Preferences > Android > NDK
に設定したパスが Eclipse に見えてないことがあるのでC/C++ > Build > Environment
にもNDK_ROOT
として追加Bulid Project
した結果、build_native.sh
は走ってくれたが。。
トラブルシューティング
Could not find BuildTest.apk!
...
- https://stackoverflow.com/questions/4778113/android-eclipse-could-not-find-apk
- アプリケーションプロジェクトのプロパティに
isLibrary
のチェックが入ってないか
Unknown error: Unable to build: the file dx.jar was not loaded from the SDK folder!
Failed to load /Users/woshidan/Library/Android/sdk/build-tools/26.0.2/lib/dx.jar
- https://stackoverflow.com/questions/5228453/android-adt-error-dx-jar-was-not-loaded-from-the-sdk-folder
Eclipse起動時に Failed to get the required ADT version number from the SDK
- Eclipseが想定しているADTのライブラリ構成のパスが古いせいで、ビルドツールの特定のライブラリが見つからないって言われてる(その2)
- Andorid SDKと一緒のディレクトリに入っているツールは
build-tools
以外は最新版しか保持できない。buildtools
以外のツールのバージョンが v26以上だと同様のメッセージが出るのでAndorid Studio用のSDKとは別のディレクトリにEclipse用の古いバージョンのSDKを入れ直してそちらを使う
エミュレータを起動しようとしたら[Start]が押せず詳細を確認したら Google Nexus 5X No longer exists as a device
Description Resource Path Location TypeThe container 'Android Dependencies' references non existing library'cocos2d-x-2.2.6/cocos2dx/platform/android/java/bin/libcocos2dx.jar' ...
- http://renkaze.seesaa.net/article/405756568.html
libcocos2xd
のプロジェクトでjar
を吐き出すパスが別のパスに設定されているlibcocos2dx
のプロジェクトで右クリックしてProperties > Java Build Path < Source
の下側のDefault output folder
をlibcocos2dx/bin/classes
に設定
java.lang.IllegalArgumentException: No configs match configSpec
というエラーでエミュレータで起動するとクラッシュする
- http://mapyo.hatenablog.com/entry/2013/08/27/Mac%E3%81%ABCocos2d-x%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%82%92%E4%BD%9C%E3%82%8B
- エミュレータ作成時の設定で
Emulation Options
のUse Host GPU
をチェック
Eclipse
でエミュレータを起動しようとしたら PANIC: Missing emulator engine program for 'arm' CPUS...
と出る
- Eclipse の ADT からエミュレータのシステムイメージが見えてないとかそういうことな気がする。
- Android Studioで使っている最新のAndroid SDK & Tools とは別にEclipse用の古いバージョンのSDKを入れ直したら解決した
Google Nexus 5X no longer exists as a device
とでて Nexus 5
のスキンのエミュレータがつけない
- Eclipse の ADT は対応しているバージョンより新しいAndroid SDKのスキンは存在しないものとして扱う、みたいな雰囲気
- Eclipse のデバイスマネージャから選択できるスキンのエミュレータを使う
まとめ
そろそろEclipseでAndroidを開発するのをやめたほうがいいのでは。
現場からは以上です。