環境
- MacBook Air (11-inch, Mid 2011)
- Mac OS X Yosemite 10.10.2
.keystoreファイルの作成
以下のコマンドにてkeystoreファイルを生成します。
keytool -genkey -v -keystore flava.keystore -alias flava -keyalg RSA -validity 10000
対話形式で入力していく。
キーストアのパスワードを入力してください: 新規パスワードを再入力してください: 姓名は何ですか。 [Unknown]: YOUR NAME 組織単位名は何ですか。 [Unknown]: None 組織名は何ですか。 [Unknown]: None 都市名または地域名は何ですか。 [Unknown]: CITY 都道府県名または州名は何ですか。 [Unknown]: PREF この単位に該当する2文字の国コードは何ですか。 [Unknown]: jp CN=Satoshi ueki, OU=None, O=None, L=Ina, ST=Nagano, C=jpでよろしいですか。 [いいえ]: はい 10,000日間有効な2,048ビットのRSAの鍵ペアと自己署名型証明書(SHA256withRSA)を生成しています ディレクトリ名: CN=YOUR NAME, OU=None, O=None, L=CITY, ST=PREF, C=jp <flava>の鍵パスワードを入力してください (キーストアのパスワードと同じ場合はRETURNを押してください):
入力を終えたら*.keystoreが生成される。
Android NDKのインストール
以下よりバージョンr10cをダウンロード。
Android NDK | Android Developers
ダウンロード後、公式にも書いてありますが以下のように解凍。
chmod a+x android-ndk-r10c-darwin-x86_64.bin ./android-ndk-r10c-darwin-x86_64.bin
どうもNDKのバージョンは10じゃ問題があるっぽい。
9dをインストールする。
cocos2d-js v3.3の場合r10cが推奨。r10c以外の場合以下のメッセージがでる。
The NDK version is not r10c or above. Your application may crash or freeze on Android L(5.0) when using BMFont and HttpClient. For More information: https://github.com/cocos2d/cocos2d-x/issues/9114 https://github.com/cocos2d/cocos2d-x/issues/9138
- zshを使っているので.zshrcに記述。環境に合わせて変更してください。
echo "export NDK_ROOT=/example/android-ndk" >> ~/.zshrc
SDKのインストール
以下からAndroid Studioをダウンロード
Download Android Studio and SDK Tools | Android Developers
起動してインストールを行う。ひとまずは、ずんずん「次へ」「次へ」って進んでけばOKっぽい。 適宜必要なSDKをインストールする。 その後コマンドラインから使用するためのパスを通す。
echo "export ANDROID_SDK_ROOT=/Users/<user>/Library/Android/sdk/" >> ~/.zshrc
エミュレータで実行
AndroidStudioのメニューバーより「tool」->「Android」->「AVD Manager」を選択
AVD Managerが立ち上がるので「Create a virtual device」をクリック
デバイスを選択し「Next」をクリック
システムイメージを選択し「Next」をクリック。グレーアウトしてるのは未インストールのもの。SDK Managerからインストールが必要。
設定し「Finish」。デフォルトで問題なさそう。
作成したエミュレータ一覧が表示される。
ダブルクリックでエミュレータが起動します。環境によってはすごく時間かかります。起動に数分かかったのでフリーズしてるのかと思いました。
・起動中。しばらくこの状態が続きます。
・起動完了。
起動後以下のコマンドを実行するとエミュレータ上でアプリが実行されます。
cocos run -p android
リリースビルド
cocos compile -p android -m release
でandroid用にコンパイル。
projectname/publish/android
にprojectname.apkが生成されます。
実機に転送後クリックすることで実機でアプリを実行することができます。
エラー集
NDKバージョン
Running command: compile Can't know cpuinfo, use default 1 cpu Building mode: release Android platform not specified, searching a default one... Can't find right android-platform for project : "/Users/<user>/flava_cocos/frameworks/runtime-src/proj.android". The android-platform should be equal/larger than 10
上記に書いたようにcocos2d-JS v3.3の場合NDKは9d10cが推奨らしい。9cを使用していたためコンパイルできなかった。
keyエラー
『Cannot recover key』となる場合。 frameworks->runtime-src->proj.android->ant.properties内のパスとの齟齬がある。