DesignAssembler

備忘録に近い

webviewでunfortunately, <アプリ名> has stopped.が出る

こんにちは。

最近Androidアプリを作っています。webviewを実装するときにハマってしまったので書きます。

開発はEclipseで行っています。


問題

webviewでサイトを表示させようとするがどうしてもエラーが出てエミュレーターでアプリが起動しませんでした。

エミュレーターの問題だと思って実機でもテストしたのですが同じ結果でした。

エミュレーターで起動するとこんな感じになりました。

f:id:hyottokoaloha:20150324205352p:plain


3時間ほどいろいろこねくり回してたらようやく解決方法がわかりました。



解決

fragment_main.xmlに記述していたWebViewをactivity_main.xmlに記述したら起動しました。

f:id:hyottokoaloha:20150324210559p:plain



理由

unfortunately, <アプリ名> has stopped.が出る理由


アプリケーションが不正処理(よくあるのはNullPointerException)によってアプリケーションが強制終了した際、表示されるダイアログに記載されている文章
通信用語の基礎知識様より

Unfortunately, App has stopped. ‐ 通信用語の基礎知識

俗に言う「ぬるぽ」ですね。つまり無い袖は振れないというわけです。

変数にNullを入れていたり宣言してないidを使用した時にでるようです。


2つのlayoutファイルについて

自動的に生成されるlayoutファイルですが、Android 4系からactivity_main.xmlに加えてfragment_main.xmlが追加されました。

このファイルの違いを理解していなかった事が今回悩んだ直接の原因です。

この2ファイルの違いは、アクティビティの上にパーツを配置するかフラグメントの上にパーツを配置するかの違いのようです。

ここでアクティビティとフラグメントの話をすると長くなるので以下を参照にしてください(ごめんなさい)

itpro.nikkeibp.co.jp


対処法

当たり前の話ですが、Logcatに慣れる事ですね・・・

自分はLogcat全然見ずにずっとググってました。Logcat見れたらすぐに解決できたと思います。


出典

kabozuki.hatenablog.com

大変参考にさせていただきました。ほんとうにありがとうございます。

qiita.com

こちらも、ありがとうございます。