Windows8.0(64bit)にcocos2d-x(2.2.2)をセットアップする

開発環境の入ってないまっさらなマシンにCocos2d-xを一から入れてみたメモです。
基本の流れは『 **Cocos2d-xによるiPhone/Androidアプリ プログラミングガイド** 』を読み進めながら行いました。
それでもいくつか引っかかった点があり、これからの人の参考に少しでもなればと思い自分の一例をまとめました。

##フォルダ名についての注意
NDK_ROOTに渡すフォルダ名に各括弧を使用していたら以下の場所でエラーになりました。

```
■NDK_ROOTをこのように設定
NDK_ROOT = C:\[project]\library\android-ndk-r9c

/cygdrive/c/[project]/library/android-ndk-r9c/build/core/init.mk:471: *** Android NDK: Aborting    .  Stop.

■エラーの原因の場所
NDK_PLATFORMS_ROOT := $(strip $(wildcard \$(NDK_ROOT)/platforms))
```
NDK_PLATFORMS_ROOTを正しく作る事ができなかったようです。
パス名を変更する事でエラーは出なくなりました。
変な記号の入ったパス名は避けた方が無難です。

```
C:\[project]\library\android-ndk-r9c
↓
C:\project\library\android-ndk-r9c
```

#インストール
どれも現時点での最新のバージョンを選んでいきました。
説明の簡略化の為に実際に自分がインストールしたフォルダパスをそのまま記載していきます。
ライブラリの展開先が 「C:\project\cocos2d-x」「C:\project\library」「C:\Program Files」の3種類に分かれてますがこれにあまり特別な意図はありません。

##cocos2d-x 2.2.2
* http://www.cocos2d-x.org/download
* cocos2d-x-2.2.2.zip をダウンロード
* C:\project\cocos2d-x\cocos2d-x-2.2.2 に展開

##cygwin
* http://cygwin.com/install.html
* setup-x86_64.exe をダウンロード
* C:\project\library\cygwin64 に展開
* インストール時に Devel>make The GNU version…　を自分で追加指定して含める事
* 環境変数のPATH に C:\project\library\cygwin64\bin; を追記

##Python 2.7.6
* http://www.python.jp/download/
* python-2.7.6.amd64.msi をダウンロード
* C:\project\library\Python27 に展開
* 環境変数のPATHに C:\project\library\Python27; を追記

##JDK 7u51
* http://www.oracle.com/technetwork/java/javase/downloads/index.html
* jdk-7u51-windows-x64.exe をダウンロード
* インストーラーの指定通りの場所 C:\Program Files\Java\jdk1.7.0_51 に展開

##AndroidNDK r9c
* http://developer.android.com/tools/sdk/ndk/index.html
* android-ndk-r9c-windows-x86_64.zip をダウンロード
* C:\project\library\android-ndk-r9c に展開

##AndroidSDK 20131030
* http://developer.android.com/sdk/index.html
* 64bitの「Setting Up the ADT Bundle」を選択
* adt-bundle-windows-x86_64-20131030.zip をダウンロード
 * これに Eclipse と ADT pluginも含まれている
* C:\project\cocos2d-x\adt-bundle-windows-x86_64-20131030 に展開

#Eclipseの起動と設定
* C:\project\cocos2d-x\adt-bundle-windows-x86_64-20131030\eclipse\eclipse.exe を起動
* 最初にWorkspaceの位置を聞いてくるので指定
 * C:\project\cocos2d-x\workspace
* 「window→preferences」を開く
* 「General→WorkSpace→Linked Resources」に移動し、Defined Path variablesに追加

|Name|Value|
|:-----|:------|
|COCOS2DX|C:\project\cocos2d-x\cocos2d-x-2.2.2|

* 同じくpreferencesの画面で「C/C++→Build→Environment」に移動し、ここにも追加

|Variable|Value|
|:-----|:------|
|NDK_ROOT|C:\project\library\android-ndk-r9c|
|CYGWIN|nodosfdilewarning|
|SHELLOPTS|igncr|

* 同じくpreferencesの画面で「C/C++→CodeAnalysis」に移動
* 「Syntax and Semantic Errors」のチェックを外す
 * そこから下の階層のチェックが全て外れます

## libcocos2dx プロジェクトの追加 
* Eclipseの「File→New→Project...」を開く
* 「Android→Android Project from Existing Code」を選んで「Next」
* RootDirectory に C:\project\cocos2d-x\cocos2d-x-2.2.2\cocos2dx\platform\android\java
 * 下の Projects: にImportするフォルダが出現したら成功です
* 「Finish」ボタンを押して追加完了

#テストプロジェクトの作成

* C:\project\cocos2d-x\lib\cocos2d-x-2.2.2\tools\project-creator をコマンドプロンプトで開く
 * フォルダ上で shift+右クリックで「コマンドウィンドウをここで開く」で開けます
* create_project.py を使ってプロジェクトを作成

```
create_project.py -project MyProject -package net.tks2.myproject -language cpp
```

* 本に書いてあった通りのままです
* C:\project\cocos2d-x\cocos2d-x-2.2.2\projects\MyProject が作成される

## MyProject プロジェクトの追加
* Eclipseの「File→New→Project...」を開く
* 「Android→Android Project from Existing Code」を選んで「Next」
* RootDirectory に C:\project\cocos2d-x\cocos2d-x-2.2.2\projects\MyProject
 * 下の Projects: にImportするフォルダが出現したら成功です
* 「Finish」ボタンを押して追加完了
* ここで長めのビルドが行われます。ビルド進捗はEclipseのConsoleウィンドウ内に表示されてます

# Android実機の認証
実機デバッグを行う為に手持ちの Android に設定を行いました。
機種により設定方法は微妙に違います。

## HTC J Butterfly

* 設定メニューを開き「セキュリティ→不明な提供元」にチェックを入れる
* 設定メニューを開き「開発者向けオプション→USBデバッグ」にチェックを入れる
* USBドライバをインストールする
 * ドライバについてはこちらを参考にしました http://app-roid.com/blog-entry-736.html
 * HTCの場合「HTC SyncManager」をインストールする

## Nexus7

* こちらを参考にしました http://blog.kotemaru.org/2013/01/eclipsenexus7.html
* 「設定→タブレット情報」のビルド番号を7回タップして開発者メニューを有効化
* 「設定→開発者向けオプション」のUSBデバッグにチェック
 * 同時にUSB経由のアプリを確認にもチェックが入る
* Windows8のコントロールパネルからデバイスマネージャーを開く
* 一覧から「ほかのデバイス→Nexus7」を選ぶ
* ドライバの更新ボタンを押し「コンピュータを参照してドライバソフトウェアを検索」
* C:\project\cocos2d-x\adt-bundle-windows-x86_64-20131030\sdk を指定
* ドライバが見つかったらインストール
* Nexus7側で「USBデバッグを許可しますか？」が出てきたらOKを押す
 * これは最初のデバッグ実行前で出現したかもしれません
 
#テストプロジェクトの実行

 * MyProjectを選択してメニューの「Run→Run」
 * 「Android Device Chooser」ウィンドウから繋がっている実機を選択して「OK」
 
##起動時エラーの対処
起動させようとすると以下の様なエラーが出ました。

```
Unable to add '(中略)\MyProject\proj.android\assets\fonts\Marker Felt.ttf': Zip add failed
```

原因は全く不明ですが、以下のfontsフォルダを適当な名前にリネームする事で無事起動するようになりました。
> \MyProject\Resources\fonts
> ↓
> \MyProject\Resources\\_fonts