Win7, 64bit環境でのcocos2d-x環境構築まとめ

公開日: : 最終更新日:2014/01/26 Android, 備忘録 ,

さて、いままでJavaオンリーでゴリゴリとアプリリリースしてきたわけですが、ゲームを作るとなると、どうも色々と厳しくなってきたわけなの。 ということでなんかいいもんはないかと調べたことろ、cocos2d-x, unityが候補として挙がってきた。。。 どちらもクロスプラットフォーム開発対応、つまりコード書けばAndroidでもiPhoneでも動くものができるというおいしい仕様。

cocos2d-xは名前の通り2Dゲームを作るのに適しているみたい。対してunityは3D。。。 使用言語はどっちもC++。 僕は2Dゲームのほうが好きなのでということで、取り敢えずcocos2d-xを修得する。 んで、前置き長くなったけど、色々と環境構築で詰まったので以下備忘録。。。 (※ちなみに環境はWindows7 64bit, eclipse) 手順はざっくりと以下のとおり。

  1. Eclipse, AndroidSDKのインストール
  2. Javaのインストール
  3. AndroidNDKのインストール
  4. Cygwinのインストール
  5. cocos2d-xのインストール
  6. Pythonのインストール、プロジェクト作成
  7. Eclipseで追加ソフトフェア、パッケージのインストール
  8. Eclipseでのもろもろ設定
  9. プロジェクトのインポート

・・・とまぁ結構色々しないといけないわけです。更に、結構エラーとかでつまずくポイントもあるみたい。と言うかつまずいた。 もう既にAndroid開発環境ができてる場合は「3.AndroidNDK」からとなる。取り敢えず順に説明してくの。。。

基本各パッケージのインストール場所はどこでもいいけど、パスの設定で指定するので、覚えておく。

1.Eclipse,AndroidSDKのインストール

もう僕は既に環境できてたけど、一応簡単に書いておく。 今はバンドル化されてて簡単にインストールできるみたいね。
http://developer.android.com/sdk/index.htmlから[Download the SDK]でダウンロード、任意の場所に展開したらもうほぼ終了。 あとはSDKManagerを起動してAndroidプラットフォーム(Android2.2-4.x)を適当にインストールしておく。

2.Javaのインストール

これももう既にJDKインストール済みの場合はスルーで。 もし入ってない場合は、
http://www.oracle.com/technetwork/java/javase/downloads/index.htmlから最新のJDKをダウンロード、インストールする。 基本ダイアログに従ってポチポチするだけだから特に問題無いと思う。

3.AndroidNDKのインストール

さて、ここからがいよいよcocs2d-xに直接関係する所でありつまずきやすいところ。 AndroidNDKをインストールする。AndroidNDKは、ゴリゴリ書いたC++ソースをAndroidプロジェクトのライブラリとして使うために必要となるNative Development Kit。

http://developer.android.com/tools/sdk/ndk/index.htmlからダウンロード、インストールすることとなる。ここで注意なのが、パッケージのリビジョンである。 僕がこの記事を書いている時の最新バージョンがandroid-ndk-r9c-windows-x86_64.zip(r9c)。 これをインストールしたいところだが、まだ安定していないようで、エラーが後々ビルド時に出ることがあるみたい。と言うか出た。。。

ということで、前のバージョンであるandroid-ndk-r8e-windows-x86_64.zip(8e)をインストールするのが吉。。。 任意のディレクトリに展開しておく。

4.Cygwinのインストール

書いたC++コードをびるどするのにmakeしなければならない。MacとかLinuxならそんままできるわけだけど、Windowsの場合はWindows版のLinux風ターミナルであるCygwinとかをインストールしないとmake出来ない。

ということでCygwinのインストール。http://cygwin.com/install.htmlから対応するsetup.exeをダウンロードして実行。 実行すると、ダウンロード先の選択が画面が出るが、適当にjpドメインのところを選択すればよし。

あとは「Select Packages」のところで、ほしいのは[make]なので、[Devel]→[make]を選択してから進んでいってインストール完了。ここは特に問題無いと思ふ。 あ、でもウィルス対策ソフトによってはウィルスとして検知されることがあるので、その場合は一時的に対策ソフトの無効を。

5.cocos2d-xのインストール

本体であるcocos2d-xのパッケージをインストールする。公式サイト(http://www.cocos2d-x.org/download)よりダウンロードし、任意のディレクトリに解凍すればよい。この記事を書いてる時はv2.2.2とv3.0betaがあったが、ここは無難に安定版のv2.2.2をインストールした。

6.Pythonのインストール、プロジェクト作成

上記でダウンロードしたcocos2d-xのスクリプトを実行するのに、Pythonが必要なため、インストールしてプロジェクトを生成してみる。 公式サイト(http://www.python.org/download/)より、適切なものをダウンロード、インストールする。

この記事の記述時はPython2.xと3.xがあったが、3.x系まだ安定性が微妙なようなので、安定の2系のインストーラをダウンロード。あとはダウンロードしたインストーラ(msi)を実行して進んでいけばインストール完了。 ここも問題ないだろう。

それでは、インストールしたPythonでcocos2d-xのスクリプトを叩いてプロジェクトを生成してみる。基本、コマンドプロンプトを用いて進めていくので、まずはPythonを使用できるようにするため、環境変数のPathを指定してやる。

Windows7の場合、 [スタートボタン]→[コンピュータ]で右クリック→[プロパティ][システムの詳細設定]→[環境変数]→システム環境変数の変数PATH選択して[編集]。 そんで以下(Pythonのパス、それとmakeを実行するためにCygwinのパス)を追記する。 (sdkとかのパスもまだ設定されてない場合は設定しとく。もう設定されてるだろうけど・・・)

#追記例(セミコロンで区切り)
D:\python;D:\Cygwin\bin;/cygdrive/d/Cygwin/bin

これでコマンドが使えるようになったので、先ほどインストールしたcocos2d-xにあるスクリプト「create_project.py」を実行する。 コマンドプロンプトを起動して、インストールしたcocos2d-2.2.xxx/tools/project-creator/まで移動する。

#例Dドライブ直下にインストールした場合
c:>cd /d d:
d:>cd cocos2d-xxxx/tools/project-creator/

んで、以下のようにオプションを指定してcreate_project.pyを実行する。

#プロジェクト名、パッケージ名、使用言語を指定する。
#プロジェクト名:SampleProject
#パッケージ名:com.example.sampleproject
#使用言語:C++
>create_project.py -project SampleProject -package com.example.sampleproject -language cpp

うまく言った場合、cocos2d-2.2.xxx/projects/SampleProjectが生成されてる。 ざっくりとこんな感じ。ここも特に引っかかるところはないと思ふの。

7.Eclipseでの追加ソフトウェア、パッケージのインストール

ここまででほぼ必要な物はインストールできてると思う。しかし、Eclipseのパッケージの違いの関係などで不足してるものもあるかもしれないので、確認。
Eclipseで、[Window]→[Preferences]を開いてみる。
左のペインの中から、[Android]→[NDK], [C/C++]がちゃんと存在するか確認する。あるならもうおk。

ない場合は、Eclipse上で新たにソフトウェアを追加する必要がある。
[Help]→[Install New Software…]から、C/C++の開発環境、NDKPluginをインストールする。
Work Withに”Available Software Sites”からサイトURLを適当に追加してFilterすればすぐ見つかると思う。あとはダイアログに従って進んでいけば完了。
ここも特に問題ないだろう。でインストールし終えたらEclipse再起動。。。

8.Eclipseでのもろもろ設定

これまでインストールしてきたものについて、Eclipseで各種パスを設定して使えるようにする。(結構めんどくさい)
まず、[Window]→[Preferences]を表示させる。左ペインから該当箇所を選択して色々やってく。

・cocos2dxのパス読み込ませ
[General]→[Workspace]→[Linked Resources]を表示させる。

Defined path variables:で[New]。
New Valiablesダイアログで、[Name]: COCOS2DX , [Location]: (cocos2dxをインストールしたディレクトリ)をそれぞれ入力。んで[OK]。
これでcocos2dxが読み込める。

・C/C++のndk用設定 &コンパイル設定
[C/C++]→[Build]→[Environment]を表示させる。

Environment variables to set:で[Add]。
New Valiableダイアログで、[Name]: NDK_ROOT, [Value]: (Android NDKをインストールしたディレクトリ)をそれぞれ入力。んで[OK]。
これでNDKが読み込める。
同様にして、[Name]: CYGWIN, [Value]: nodosfilewarning , も1つ [Name]: SHELLOPTS, [Value]: igncr も追加しておく。つまりは計3つ登録。

・エラー判定の変更
[C/C++]→[Code Analysis]を表示させる。

[Problems]の一覧から、[Syntax and Semantic Errors]のチェックを外す。んで[OK]。

ここまででパスの設定も完了。次でいよいよ最後。。。

 

8.プロジェクトのインポート

最後、プロジェクトのインポートだが、2つのプロジェクトをインポートすることとなる。1つは、Android用cocos2dxライブラリプロジェクト、もうひとつは、1つめのプロジェクトをライブラリとして用いる、最初に作成したSampleProject。。。

Android用cocos2dxライブラリプロジェクトは一度インポートしちゃえば以降は同じものを使い続けるので、初期設定としては1つ目のライブラリプロジェクトのインポートで完了。これから毎回するのは、2つ目のプロジェクト生成、インポートとなる。

・Android用cocos2dxライブラリプロジェクト[libcocos2dx]のインポート

Eclipseで、[File]→[New]→[Project…]を選択。
New Projectダイアログで、[Android]→[Android Project from Existing Code]を選択して[Next].
Import Projectsダイアログで、[Root Directory]:にAndroid用cocos2dxライブラリプロジェクトを指定。
(Dドライブ直下にcocos2dxをインストールした場合、D:\cocos2d-2.1xxx/cocos2dx/platform/android/java)

でNew Project Nameにlibcocos2dxが表示されているのを確認して[Finish]。インポート完了。

・SampleProject

先程作成したプロジェクトをインポートしてみる。基本的な手順は1つ目のインポートと同じ。違うのは[Root Directory]:の指定。
この指定を、SampleProjectのAndroid用のもの「proj.android」にしてやる。
(Dドライブ直下にcocos2dxをインストールした場合、D:\cocos2d-2.1xxx/projects/SampleProject/proj.android)

ちゃんとインポートできてれば、左のペイン(Package Explorer)にSampleProjectが表示されてるはず。
んでビルドが自動的に行われる。(行われない場合は[Project]→[Build Project])。

ここで僕の場合、以下のエラーが出た。

Unable to add 'D:\cocos2d-x-2.1.4\projects\SampleProject\proj.android\assets\fonts\Marker 
Felt.ttf': Zip add failed

要はPermission Denyed的なエラーが出る。Cygwinで権限を確認してみると、assertsフォルダ以下は権限が一切なしと。。

ということでchmod 755 -R assertsしてあげてもう一回ビルド。これでも結果は同じ。。。
しかたがないのでビルドの設定ファイルである「SampleProject/build_native.sh」を直接編集してあげる。以下の様な感じ。

#ここまで略
chmod 755 -R "$APP_ANDROID_ROOT"/assets

# make sure assets is exist
if [ -d "$APP_ANDROID_ROOT"/assets ]; then
    rm -rf "$APP_ANDROID_ROOT"/assets
fi

mkdir "$APP_ANDROID_ROOT"/assets

# copy resources
for file in "$APP_ROOT"/Resources/*
do
if [ -d "$file" ]; then
    cp -rf "$file" "$APP_ANDROID_ROOT"/assets
fi

if [ -f "$file" ]; then
    cp "$file" "$APP_ANDROID_ROOT"/assets
fi

chmod 755 -R "$APP_ANDROID_ROOT"/assets
done

# run ndk-build
#以下略

2行分「chmod 755 -R “$APP_ANDROID_ROOT”/assets」を追記してあげた。
ビルドの前後で権限を755に補正してやってるわけ。

なんかよく分からんがcpで作成されたassertsの権限が何もなしになるみたい。

この2行分の追記によって、無事ビルドが通り、あとはAndroidアプリケーションとして実行。
(エミュレート端末を事前にAVDとかで作成しておくこと。)

そして、ようやく出たーーーーーー、おめでとう!
以下の感じ。

device-2014-01-13-182556

 

 

まぁ一回出来ちゃえばあとはコンテンツの作成に注力するのみ。さぁ頑張ろう。

今回の環境構築で注意する点を以下にまとめる。

  • 各種パッケージはリビジョンによる依存関係が結構ある。初心者は冒険せず安定版のインストールが無難。
  • ぐぐってみた感じ、権限周りは結構エラーでつまづきやすいところのようで。build_native.shがいじりどころ。
  • 変数の指定、パスの設定は正確に。

・・・以上、長い戦いであった。。。

 

 

GoogleAdsense

関連記事

dordoidくん

【Android】難読化ツールProguard設定まとめ

Android開発環境の1つであるEclipseでは、標準でAndroidプロジェクトの難読化ツール

記事を読む

android_kitkat

Android4.4(API19)KitKatでのGraphicalLayout,AdMob問題

Androidの新バージョンKitKatがリリースされてもう結構経つが、いまさら我が開発環境でも導入

記事を読む

【Androidエラー】Conversion to Dalvik format failed with error 1

Androidにおいて、アプリケーションを作成し終え、いざパッケージをエクスポートっ!!というところ

記事を読む

android_secure

【Android】代表的な脆弱性まとめ ~ファイルアクセス権について~

近年、スマートフォンの普及に伴い、Android, iPhone, WindowsPhone? ユー

記事を読む

john the ripper

パスワードクラックツール JOHN THE RIPPER 使い方まとめ

パスワードクラッキングツールである「JOHN THE RIPPER」の使い方を備忘録としてまとめてお

記事を読む

hydra

クラックツールHydraでベーシック認証を突破してみる

kali linuxにデフォルトでインストールされているツール「Hydra」を利用して、ベーシック認

記事を読む

nerdtree

Vimプラグイン「NERDTree」設定・コマンド備忘録

Vimのプラグインである「NERDTree」について、設定・コマンドを備忘録としてまとめておきます。

記事を読む

PHPのextensionが読み込まれない問題…

大したあれではないが、ちょっと詰まったのでメモ。。。 事のぼったんは久々にWordPressを

記事を読む

genymotion_logo

genymotionのすすめ

Android開発においてしばしば挙がる不満として、エミュレータのもっさり感があります。 この

記事を読む

node_cookie

【Node.js】 Cookieの取り扱いまとめ

最近流行りのNode.jsですが、Cookieに関して、いくつかお決まりの取り扱い方があり、

記事を読む

GoogleAdsense

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

GoogleAdsense

openssh
SSH CA認証まとめ

SSHでの接続を、CA認証でやってみる。 備忘録として残しておく

node_cookie
【Node.js】 Cookieの取り扱いまとめ

最近流行りのNode.jsですが、Cookieに関して、いくつ

hydra
クラックツールHydraでベーシック認証を突破してみる

kali linuxにデフォルトでインストールされているツール「Hyd

john the ripper
パスワードクラックツール JOHN THE RIPPER 使い方まとめ

パスワードクラッキングツールである「JOHN THE RIPPER」の

宇部空港
久々の帰省・・・

宇部空港にて[/caption] たまには普通の日記を。。。

→もっと見る

PAGE TOP ↑