woshidan's blog

そんなことよりコードにダイブ。

Cocos2d-x 2.2.6をMac OS Sierraで動くようにするまでのメモ

仕事でやってて面白かったので許可を取って公開。

環境

スクリーンショット 2017-10-19 13.30.52.png (44.2 kB)

メモ

プロジェクトの作成

python create_project.py -project MyGame -package com.MyCompany.AwesomeGame -language cpp

Eclipse インストーラからJavaIDEをインストールして環境変数を設定

  • Help > Install New SoftWare
    • Work with の欄に https://dl-ssl.google.com/android/eclipse を入力
      • Developer Tools をダウンロード
      • Eclipseを再起動
      • DLしたらどこのAndroid SDK を使うか聞かれるので Andorid Studioで使っているパス /Users/woshidan/Library/Android/sdk あたりでも答えておく (設定した値は Preferences > Android からでも確認可能. Android SDKのバージョンが v26 以上なら後の方に書くようにEclipse用に別途古いAndroid SDKを用意した方が良い)

cocos2dxのプロジェクトをインポートとプロジェクト間の依存関係の設定

  • Import > Andorid > Existing Android Code Into Workspacecocos2d-x-2.2.6/cocos2dxplatform/andorid/java をインポート
    • Copy projects into workspace にチェックしておく
  • Import > Andorid > Existing Android Code Into Workspacecocos2d-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 ResourcesLinked Resources のタブを確認。Classes, cocos2dx, extensions, scropting の壊れているパスを修正

古めのNDKを用意してNDK_ROOTの環境変数を設定

  • 古めのNDK(Android NDK, Revision 10e)を https://developer.android.com/ndk/downloads/older_releases.html からDL
    • EclipsePreferences > 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! ...

Unknown error: Unable to build: the file dx.jar was not loaded from the SDK folder!

Eclipse起動時に Failed to get the required ADT version number from the 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 folderlibcocos2dx/bin/classes に設定

java.lang.IllegalArgumentException: No configs match configSpec というエラーでエミュレータで起動するとクラッシュする

Eclipseエミュレータを起動しようとしたら PANIC: Missing emulator engine program for 'arm' CPUS... と出る

Google Nexus 5X no longer exists as a device とでて Nexus 5 のスキンのエミュレータがつけない

まとめ

そろそろEclipseAndroidを開発するのをやめたほうがいいのでは。

現場からは以上です。