Androidプログラミングの館のイライラ棒アプリをs2.6までコピペで作らせていただきました。
しかし、それでできたアプリを終了させるときに8割くらいの確率でエラーのダイアログが表示されてしまいます。
原因もわからず困っております。
解決法をどうかお教え願います。
イライラ棒アプリで謎のエラー
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: イライラ棒アプリで謎のエラー
同じ内容で複数のトピックを立てるのはご遠慮ください。
私はandroidに詳しくないのですが、「8割くらいの確率でエラーのダイアログが表示されてしまいます」の詳細や開発環境のバージョン、開発機材などの情報を書かないと答えられる人も答えられないと思いますのでお願いします。
これだけだと実機出てているのかandroidシミュレータで出ている問題なのかもさえも良く分かりませんので。
私はandroidに詳しくないのですが、「8割くらいの確率でエラーのダイアログが表示されてしまいます」の詳細や開発環境のバージョン、開発機材などの情報を書かないと答えられる人も答えられないと思いますのでお願いします。
これだけだと実機出てているのかandroidシミュレータで出ている問題なのかもさえも良く分かりませんので。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: イライラ棒アプリで謎のエラー
まず、強制終了したならば、Logcatにエラーメッセージがでているはずです。
赤字で出ているものがエラーメッセージです。
その内容を教えて下さい。
また、章ごとにプロジェクトがダウンロードできるようになっていますが、ダウンロードしたプロジェクトで実行するとどうなりますか?
赤字で出ているものがエラーメッセージです。
その内容を教えて下さい。
また、章ごとにプロジェクトがダウンロードできるようになっていますが、ダウンロードしたプロジェクトで実行するとどうなりますか?
-
たこ焼き
Re: イライラ棒アプリで謎のエラー
同じような内容のトピックが以前にもあったと知らず失礼しました。
今回の問題はAndroid4.0.4の実機で発生しました。
LogCatを見たところ
FATAL EXCEPTION:Thread-1987
java.lang.NullPointerException
at (プロジェクト名).GameMgr.onDraw(GameMgr.java:45)
at (プロジェクト名).GameSurfaceView.onDraw(GameSurfaceView.java:45)
at (プロジェクト名).GameSurfaceView.run(GameSurfaceView.java:38)
at java.lang.Thread.run(Thread.java:856)
と表示されていました。
s2.6のコードをそのままコピーしました。
どうかよろしくお願いいたします。
今回の問題はAndroid4.0.4の実機で発生しました。
LogCatを見たところ
FATAL EXCEPTION:Thread-1987
java.lang.NullPointerException
at (プロジェクト名).GameMgr.onDraw(GameMgr.java:45)
at (プロジェクト名).GameSurfaceView.onDraw(GameSurfaceView.java:45)
at (プロジェクト名).GameSurfaceView.run(GameSurfaceView.java:38)
at java.lang.Thread.run(Thread.java:856)
と表示されていました。
s2.6のコードをそのままコピーしました。
どうかよろしくお願いいたします。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: イライラ棒アプリで謎のエラー
いえ、たこ焼きさんが同じトピックを20分差で2つ作られていたのです。
あと、Dixq (管理人)さんの言われる
>また、章ごとにプロジェクトがダウンロードできるようになっていますが、ダウンロードしたプロジェクトで実行するとどうなりますか?
をまず試してみてください。
それと開発環境のバージョンが書かれておりません。
あと、Dixq (管理人)さんの言われる
>また、章ごとにプロジェクトがダウンロードできるようになっていますが、ダウンロードしたプロジェクトで実行するとどうなりますか?
をまず試してみてください。
それと開発環境のバージョンが書かれておりません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: イライラ棒アプリで謎のエラー
配布しているソースコードではGameMgrに45行も無いです。
どこか紹介しているコードと違うのではないでしょうか?
GameMgr.javaの45行目でNullPointerExceptionが起きているなら、そこでNullになる原因を探ってみてはどうでしょう。
分からなければ、配布しているソースコードと比較してみてください。
ソースコードの比較の方法はこちらを参考にどうぞ
http://dixq.net/rp/winmerge.html
どこか紹介しているコードと違うのではないでしょうか?
GameMgr.javaの45行目でNullPointerExceptionが起きているなら、そこでNullになる原因を探ってみてはどうでしょう。
分からなければ、配布しているソースコードと比較してみてください。
ソースコードの比較の方法はこちらを参考にどうぞ
http://dixq.net/rp/winmerge.html
-
たこ焼き
Re: イライラ棒アプリで謎のエラー
返信遅くなってすみません。
s2.6からダウンロードしたプロジェクトを実行した結果、同じようなエラーが出ました。
開発環境はeclipseのversion20.0.3.v201208082019-427395です。
s2.6からダウンロードしたプロジェクトを実行した結果、同じようなエラーが出ました。
開発環境はeclipseのversion20.0.3.v201208082019-427395です。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: イライラ棒アプリで謎のエラー
ダウンロードしたものでエラーが出た行番号を教えて下さい。たこ焼き さんが書きました:返信遅くなってすみません。
s2.6からダウンロードしたプロジェクトを実行した結果、同じようなエラーが出ました。
開発環境はeclipseのversion20.0.3.v201208082019-427395です。
それとeclipseではなくversion20.0.3ってADTのバージョンですよね?
>GameMgr.javaの45行目でNullPointerExceptionが起きているなら、そこでNullになる原因を探ってみてはどうでしょう。
は調べられたのですか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: イライラ棒アプリで謎のエラー
こちらで確認したところ、確かに発生しますね。
どうもアプリを終了すると、Canvasが使えなくなった後でSurfaceDestroyedが呼ばれるようです。
つまりSurfaceDestroyedが呼ばれる前に使えなくなったCanvasは使わないようにしなければならないようです。
そこで、Canvasが取得できなかったときはスキップするように、以下のように対処してみましたが如何でしょうか。
GameSurfaceView#
どうもアプリを終了すると、Canvasが使えなくなった後でSurfaceDestroyedが呼ばれるようです。
つまりSurfaceDestroyedが呼ばれる前に使えなくなったCanvasは使わないようにしなければならないようです。
そこで、Canvasが取得できなかったときはスキップするように、以下のように対処してみましたが如何でしょうか。
GameSurfaceView#
-
たこ焼き
Re: イライラ棒アプリで謎のエラー
Canvasのところを修正した結果エラーが出なくなりました。
どうもありがとうございました。
これからもAndroidプログラミングを続けていきたいと思っていますのでよろしくお願いいたします。
どうもありがとうございました。
これからもAndroidプログラミングを続けていきたいと思っていますのでよろしくお願いいたします。