Cocos2d-x + Android-Studioの環境構築メモ

環境1

環境2

 

ndkは最新だとcocos2d-xが動かなかった。

cocos new コマンドでプロジェクトを作成し、android-studioでproj.android-stuidoをopenする。

エミュレータはarmでないとダメみたいだが、遅すぎて使えない。usbで実機にて動かしている。

実機は設定の開発者向けオプションからusbデバッグを有効にする。

Android Studioにてprojects表示で、proj.android-studio/app/jni/Android.mkに「APP_PLATFORM = android-22」を追記する。

実機に接続した状態で、terminalにて起動する。

cocos run -p android --android-studio

初回はcompileで時間がかかる。通常runは、環境1で、9sec程度。

インストールされたapkはダウンロードアプリに入っているので、いつでも起動できる。

 

arch linuxのみ

yaourtでandroid-stutioとandroid-ndkを入れる。sdkはstudioから入れる。

/tmpと/optが容量不足のため、/home配下からシンボリックリンク

シンボリックリンクの場合、yaourtのinstallがこけるのでPKGBUILDのパスをリンク先に変更する。

python3がpythonなっているので、cocosコマンドでng。/opt/cocos2d-x/tools/cocos2d-conosole/cocosのpythonをpython2に変更。

 

emacsでコーディング

emacsでの開発環境の設定はQiitaの記事を参考に実施した。

C++11時代のEmacs C++コーディング環境 - Qiita

次のようにinitファイルを修正した。

inits/05-irony.el

(require 'irony)

(add-hook 'c++-mode-hook 'irony-mode)
(eval-after-load "irony"
'(progn
(custom-set-variables '(irony-additional-clang-options '("-std=c++11")))
(add-to-list 'company-backends 'company-irony)
(add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options) ;;cmakeで生成されたJSONファイルを読み込むための設定
(add-hook 'c-mode-common-hook 'irony-mode)))

 inits/05-cpp.el

(setq c-basic-offset 6)

(when (locate-library "company")
(global-company-mode 1)
(global-set-key (kbd "C-M-i") 'company-complete)
;; (setq company-idle-delay nil) ; 自動補完をしない
(define-key company-active-map (kbd "C-n") 'company-select-next)
(define-key company-active-map (kbd "C-p") 'company-select-previous)
(define-key company-search-map (kbd "C-n") 'company-select-next)
(define-key company-search-map (kbd "C-p") 'company-select-previous)
(define-key company-active-map (kbd "<tab>") 'company-complete-selection))

inits/05-flycheck.el

(add-hook 'after-init-hook #'global-flycheck-mode)

(eval-after-load "flycheck"
'(progn
(when (locate-library "flycheck-irony")
(flycheck-irony-setup))))

 Cocos2d-xのプロジェクト配下の「CMakeCache.txt」を修正して、compile_commands.jsonファイルを出力する。

CMakeCache.txt

//Enable/Disable output of compile commands during generation.
//CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON

 そして、cmakeコマンドの実行

$ cmake .

これでincludeファイルも参照して、cocos2d-xのチェックや補完が可能となる。

Android-Studioでは補完が上手く行かないし、cocosコマンドでdebugするのでemacsオンリーで行けそう。