サーバエンジニアだけどAndroidのアプリを作ります。

Androidアプリ開発については、2013年の年末にもチャレンジしていましたが、Cocos2d-xのバージョンアップスピードが速く、当時の手順が全く古く使えなくなっていました。

がっくし。

出来上がった私の環境

  • Windows 8.1 -> Windows 10
  • Dドライブ好き
  • Cocos2d-x-3.5
  • Python-2.7.x
  • Android ndk r10d
  • Eclipse 4.5 Mars + ADT Plugin
  • Java7

Windows 10にアップグレードしても問題なく動作することが確認できました。

なぜWindows?

MacBookProが欲しいのですが、去年X1 Carbonを購入したばかりなのでしばらくはWin機で頑張ります。

なぜEclipse+ADT?

ADTは非推奨、これはからはAndroid Studio

なのですが、しばらくAndroid StudioがNDKに対応していませんでしたのでADTを採用することに決めました。
※Android Studioは2015年7月10日のアップデートでNDKに対応しました。

ゴリゴリコードを書いてC++もしっかり覚えたいな、と思っています。

なぜDドライブ

C直下がゴミだらけになるのを避けるため、D以下に開発向けのものをまとめています。

環境構築手順

環境構築手順はぎじゅつめもさんが詳しく参考にいたしました。

http://wiki.xsqi.net/index.php?%A5%D7%A5%ED%A5%B0%A5%E9%A5%E0%2FCocos2d-x%2FCocos2d-x%B3%AB%C8%AF%B4%C4%B6%AD%A4%CE%B9%BD%C3%DB

大変詳細でわかりやすく、かつ情報の鮮度も高いサイトをありがとうございます。

構築手順のおさらい

  • Cocos2d-xのンストール
  • Pythonのンストール
  • Apache Antのインストール
  • Android SDK、NDKのインストール
  • setup.pyを実行し、環境変数を定義する
  • cocosコマンドでプロジェクトを新規作成する
  • build_native.pyを実行しプロジェクトをビルドする
  • Eclipseにプロジェクトをインポートする

アプリ実行までにハマったところ

AndroidManifest.xmlの警告が気になる
  • uses-sdkにandroid:targetSdkVersionを追加する、targetSdkVersionには最新のApiVersionを指定する?
  • supports-screens、uses-permissionをapplicationより先に定義する
  • Android Lint 設定、Security > AllowBackupをIgnoreに設定する
インポートされた org.cocos2dx.lib はみつかりません

Eclipse上でのWarningで「インポートされた org.cocos2dx.lib はみつかりません」と表示されビルドができない状態になってしまいます。
cocos2d-xとの連携がうまくいっていないようです。

libcocos2dxをビルドしたのちに自分のプロジェクトをビルドすると解消するようです。

Eclipaseからビルドしない?

EclipseからAndroidアプリケーションを実行した場合にビルドが失敗することがあります。
不便なので以下のようなバッチファイルを作ることで対処しました。

Build.bat

cd /d D:\path\to\project\proj.android
build_native.py
pause > nul

Install.bat

cd /d D:\path\to\Android\sdk\platform-tools
adb install -r D:\path\to\project\bin\debug\android\project-debug.apk

環境を構築してみて、、、

Cocos2d-x 2.x環境を構築した時と、今回の違いはざっくりこんな感じでしょうか

  • Cygwinは不要になり、かわりにApache Antを利用する
  • cocosコマンドを利用する
  • C++11が利用できる
  • libcocos2dxが、最初からプロジェクトにコピーされている
  • そのため、1つのワークスペースで複数のCocos2d-xプロジェクト共存が難しい
  • 非推奨となったメソッドが多数

新しいプロジェクトを作る

手順

  1. cocosコマンドでプロジェクトを作る
  2. ADTを設定する
  3. プロジェクトをADTにインポートする

cocosコマンドでプロジェクトを作る

コマンドプロンプトで以下を行います。

cd /d d:\path\to\workspace
cocos new NewGame -p com.example.NewGame -l cpp

ディレクトリの指定は-dオプションが使えると思います。
私はcd /dが好きなのでcdをしています。

ADTを設定する

cocos2d-xのプロジェクトはlibcocos2d-xが内包されているので、1プロジェクトに1ワークスペースをあてます。
ADTを起動する際にワークスペースを指定するため、ショートカットのプロパティに-dオプションを指定します。

ADT(eclipse)のショートカットを新しく作成し、右クリックでプロパティを開き、リンク先を新しいプロジェクトのパスに指定します。

D:\path\to\adt\eclipse\eclipse.exe -data d:\path\to\workspace\NewGame

ADT(eclipse)のワークスペースが新しい==設定もデフォルトでまっさらな状態のため、必要な設定を行います。

eclipseの設定1.JRE

設定のJava>インストール済みのJREを開き、任意のJDKを指定します。

eclipseの設定2.ADTプラグイン

ヘルプにある新規ソフトウェアのインストールからADT Plugin(Android Development Tools Plugin)をインストールしなおします。

名前 ロケーション
Android Development Tools Plugin https://dl-ssl.google.com/android/eclipse/
eclipseの設定3.NDK

設定のAndroid>NDKへ遷移し、NDKのパスを設定します。

eclipseの設定4.エンコード

Windows版eclipseのデフォルトはMS932(SJIS拡張)ですが、文字コードはすぐ変更しておくのがベターです。
設定の一般>ワークスペースに遷移し、「テキスト・ファイルのエンコード」をUTF-8で指定します。

eclipseの設定5.外観

これは任意の設定項目です。
設定の外観からテーマを「ダーク」に、外観>色とテーマObsidianに指定します。

以前はSolarized Darkが好きだったのですが、選択行が見辛かったので。

プロジェクトをADTにインポートする

cocosコマンドで作成したプロジェクトのproj.androidをインポートには注意が必要です。

OKな処理

ファイルメニューのインポートより、一般>既存プロジェクトをワークスペースへからプロジェクトをインポートしてください。

Badな処理

ファイルメニュー、新規>プロジェクトからプロジェクトを作成しようとした場合、「プロジェクト説明が無効です」という意味不明なメッセージが出てはまります。

こちらからプロジェクトを作成する際にプロジェクトをワークスペースにコピーすると、プロジェクトの作成はできますが、ディレクトリ構造が壊れますのでうまく動作しませんでした。


プロジェクトをインポート後、アプリをビルドしてBUILD SUCCESSFULが出るのを気長に待ちましょう。



2015年08月05日:Windows 10にアップグレードしても動作OKであることの追記。
2015年10月30日:新規プロジェクト作成の手順についいて追記

スポンサーリンク
ad_336
ad_336
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク
ad_336