「弾幕の器」のAndroid5対応

Android5への対応

先程Android5に対応した弾幕の器のバージョンをアップしました。ゲーム内容に変更はありません。Android4.xでもGalaxyNoteだけはクラッシュが頻発すると報告があるのですが、これも直っていたら良いなぁと思いつつ実機がないため確認することはできていませんでした。
 
Android4.xにかかわるバグも少し修正。
————————————————
・被弾時のクラッシュ修正(ゲームオーバーと同時にクラッシュ)
自機が破壊され存在していない時に当たり判定のルーチンに入ってしまうことがあり「自機がないよ!」とエラーになる事がありました。何故、想定外のルーチンに入るのか分からないのですが、チェックを2重にして対処。

・ver3.6でのみエラー
Cocos2d-xのver3.2ではエラーにならなかった処理がver3.6だとエラーになるので修正(記事後半にある型指定の部分)。
————————————————
修正できていない既存のバグ
————————————————
iOSでも発生しているクラッシュで。ゲームを開始する時や、ゲーム終了後に「もう一度」ボタンをタップした時にクラッシュ。
————————————————
以上。

 

自分用のメモ

この対応は先週末に完了させる予定でしたが手間取って本日までかかってしまいました。なのでメモを残すことに。iOSのデータは保険として修正せずに残し、Android版の方のみ移行処理をすることにしました。

・cocos2d-x(v3.6)で新規にプロジェクトを作成
・まずはXcodeで動作確認をするためClassや必要素材をコピーしてきて組み込み。
———————————–
v3.6ではサウンド機能を利用する時に「SimpleAudioEngine.h」のincludeが必要なので追記。ソースの変更はこれだけ。
———————————–
・xcodeでの動作は問題なく完了。

↓しかしメインのAndroidで躓く

・jni/Android.mkを書き換えてmakeするファイルを追加
・build_native.pyを実行してeclipseに組み込むデータを作成する

しかしエラーとなり読み込むべきデータが生成されない

一度諦め、過去に作成したnend広告の確認データでbuild_native.pyを試す。

しかしエラー。以前は問題なかったのに…

さらに諦め、新規にプロジェクトを作成してbuild_native.pyを試す

問題なくデータが完成

jni/Android.mkを書き換えてbuild_native.pyを試す

問題なくデータが完成。原因はNendか…

Nend広告のSDKが6/17に色々バージョンアップ(iOS/Android/Cocos2d)されているのでダウンロードしたけれどXcode6用のため利用せず。

これまで利用してきたverのNendを組み込む

build_native.pyを実行するとNend関連のエラー(undefined reference to)

試しにエラーとなったNend関連の処理をコメントアウト

build_native.pyが成功した(すごく短時間で完了)。

コメントアウトを解除し、ClassフォルダにNend関連のcppファイルをいれる。
※これはeclipseの段階で読み込むものと思っていた…

build_native.pyが成功した。

 
ここで再度、弾幕の器をCocos2d-xのv3.6へ移行したプロジェクトを試す

まずNendを全て外したファイルを作成しxcodeで正常起動を確認

build_native.pyを実行するとエラーが1件
EnemyDest.cppのデータを記憶する仕組みの型指定がエラー

修正:cocos2dの最新マニュアルで確認
——————-
(旧)long size = 0;
(新)ssize_t size = 0;
——————-

build_native.pyが成功し、Eclipseに読込むデータが作成された
しかしビルドの段階でエラー

なんとなくビルドエラーはeclipseで修正する様な気がするので
Nendを再び組みbuild_native.pyが成功するか確認。

build_native.pyが成功し、Eclipseに読込むデータが作成された
が、やはりビルドの段階でエラー

とりあえずeclipseに読み込む。

Eclipseでも問題

Eclipseを開くと、過去に問題なかったプロジェクトにエラー表示が付いている。前回v3.6を試した時には何も問題なかったのに何故?何も変更していないと思うのに…

以下のサイトを参考に環境設定でNDKの再設定をしてcleanを実行したらエラーが消えた。
→参考:cocos2d-xのAndroidプロジェクトをビルドする方法について

ビルドは成功し実機での起動も確認。しかしNendが表示されない。
単純にNend設定はしわすれていた。Nendの表示に必要な手順をマニュアルに従い行う。

問題なくNendの表示ができた。

念のためアプリを削除し、インストールから全艦制覇しながら問題が無いか確認。

問題はないようなのでアプリを登録。
 

バージョンコード

Androidのバージョン設定にはversionCodeとversionNameがある。versionCodeはgoogle内でのアプリ管理に利用されversionNameはユーザーの目にするバージョン番号。
引っかかったのはversionCodeは整数でないといけない点。今回は4.1としたかったが、それはできない。次から以下のサイトの方と同じ様に管理しよう。
→参考:android:versionCodeの最大値+管理しやすい設定値
——————-

android:versionCode=”41″
android:versionName=”4.1″
——————-
 
メモ終わり
 
 
 

コメントを残す

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


− 7 = 一


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>