[cocos2d-x] getFileDataFromZipがandroidで失敗

環境 : cocos2d-x 2.2.2

iPhone で getFileDataFromZip が問題なく使えてたコードを、android で試したらうまくいかなかった。いろいろ調べて解決したのでメモ。

apk に含まれている状態の zip (assets/hoge.zip) を指定して、そのまま zip 内のファイルを取り出すことができないっぽい。一旦 getWritablePath の場所に zip を書き出し、その zip ファイルから取り出したら正常に動作しました。よかった。

新しいadMobのメディエーション

adMobのダッシュボードが新しくなってから初めてアプリに広告を実装中。

メディエーションIDが見つからなくて1時間つぶれた!結果マニュアル古くて今は広告ユニットIDでよいとのこと。

http://stackoverflow.com/questions/19114699/getting-admob-mediation-id

 

また、AdMobをテスト広告にしてるとメディエーションが確認できない?みたい。

テスト解除したら無事にadMobとnendのメディエーションが確認できました。

android In-app billing ユーザー切り替え

Android4.2で複数ユーザー(複数アカウント)がサポートされたということで、テストユーザーで実行することが必要なIn-app billingのデバッグが楽になるか試してみました。

開発者アカウントで起動した場合

テストユーザーで起動した場合

テストユーザー登録してない場合

ということでAndroid4.2の端末1台でデバッグできるようです。

[android In-app billing] サンプルアプリではまったこと

androidのIn-app billingアプリを動かしてみました。さっくり動くかなと思ったけれど、ちょっと躓いたのでメモしておきます。

  • パッケージ名の変更
  • eclipseのrefactorで変更したらマニフェストファイルがおかしくなったので、previewしてマニフェストファイルを除外してrefactorしました。マニフェストファイルのパッケージ名は手動で書き換えました。

  • 「アイテムが見つかりません」ダイアログ
  • 実機でサンプルアプリを起動して、両手剣などを選ぶと「アイテムが見つかりません」ダイアログが出る問題。実際は見つかってて、ダイアログを消せば購入フローにも進む。ぐぐってみたらサンプルアプリのコードが問題でした。こちらのページを参考に解決。

  • 「このバージョンのアプリは、Google Playを通じたお支払いはご利用になれません。詳しくはヘルプセンターをご覧ください。」ダイアログ
  • 実機で購入画面までいったときに出たダイアログ。eclipseから実機に転送したのが原因で、apkをadb installでインストールしないとダメみたいです。

このあたりをクリアして無事にサンプルアプリが動きました。

[cocos2d-x] ios と android 両対応プロジェクト作成手順

同一ソースから ios と android 向けのビルドを行えるようにプロジェクトを作成したときの手順です。

– xcodeでios用cocos2d-xプロジェクトを作成
– プロジェクトルートフォルダを一旦リネーム
– android用プロジェクトを付属のシェルスクリプトからios時と同名で作成
– 作成されたproj.androidフォルダを、リネームしておいたiosプロジェクトにコピー
– android用プロジェクト削除
– リネームしていたものを元の名前に戻す
– proj.androit/build_native.sh の cocos2dx のロケーションを修正(階層がひとつ深くなったので/..を追加)

以上でうまくいきました。

xcode 4.5
cocos2d-x 2.0.2