スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【AndEngine】onPauseでNullPointerException

一部機種において(Androidのバージョンの問題?)
起動直後に強制終了してしまうバグに悩まされたのでメモ。

logcatでシステムのログを確認すると
SimpleLayoutGameActivityを継承しているMainActivityが
謎の挙動をしている模様。

onCreate,onResumeの後になぜかonPauseが呼び出され
NullPointerExceptionで強制終了していました。

MainActivityのメンバとして以下を定義し

private boolean isGoing = false;

onPauseの処理をisGoingがtrueのときにしかしないように
ifで指定してやることで解決。
onCreateSceneでisGoingをtrueにしてます。

onResumeの後にonPauseが呼ばれるなんて
ライフサイクル無視しすぎやん!ってすごく困ったんですが、
どうやらonResumeあたりでエラーが発生して
AndEngineがアプリを再起動しようとした結果
onPauseが呼ばれていたみたいです。
で、onCreateSceneあたりで生成する予定のオブジェクトは
ここでonPauseが呼ばれたときにはまだ生成されていないので
それらのオブジェクトを操作する処理がonPauseにかかれていると
NullPointerExceptionで落ちるというわけでした。

ちなみにそのエラーには以下のようなコメントがついていて

UpdateThread interrupted. Don't worry - this EngineDestroyedException is most likely expected!

UpdateThreadが中断されちゃったよ!
まあこのEngineが落ちちゃう例外はよくあることだから安心して!
ってなわけなのでどうやらAndEngine側に問題がある模様。

Forumなどを探して見たところ
ソースはありませんでしたが「99.999%そのエラーは起きるよ」
というコメントがあるほどで私の技術力では何ともしがたい問題のようです。
なんだかなー
スポンサーサイト

Don't touch the wall【ver1.1公開】

icon_ad.png

画面を傾けてゴールを目指せ!
本格難易度のイライラ棒風ゲーム。

壁や障害物をかわしてゴールにたどり着けばクリア。
全6ステージを全てクリアすれば、
EXTRAステージで遊べます!

操作するポインターは重さがないため
繊細な操作のサクサク感と
敏感すぎる動きのイライラ感が
体感できる作りになっています。
イライラとクリア時の達成感をお楽しみください!

↓ダウンロードはこちら!
icon_high.png

スクリーンショット
(画像は開発中のものです)
ss01.png

ss02.png

ss03.png


音楽等の素材の一部を
下記サイト様からお借りしています。
魔王魂
http://maoudamashii.jokersounds.com/

ブログ作りました。

つくったゲームをGoogle playで公開するにあたり、
自分が情報を発信する場所を持っておこうという事で、
ウェブサイト代わりにブログ作りました。

アプリの詳細やメモ的なことを残していくつもりです。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。