webviewでunfortunately, <アプリ名> has stopped.が出る
こんにちは。
最近Androidアプリを作っています。webviewを実装するときにハマってしまったので書きます。
開発はEclipseで行っています。
問題
webviewでサイトを表示させようとするがどうしてもエラーが出てエミュレーターでアプリが起動しませんでした。
エミュレーターの問題だと思って実機でもテストしたのですが同じ結果でした。
エミュレーターで起動するとこんな感じになりました。
3時間ほどいろいろこねくり回してたらようやく解決方法がわかりました。
解決
fragment_main.xmlに記述していたWebViewをactivity_main.xmlに記述したら起動しました。
理由
unfortunately, <アプリ名> has stopped.が出る理由
アプリケーションが不正処理(よくあるのはNullPointerException)によってアプリケーションが強制終了した際、表示されるダイアログに記載されている文章
通信用語の基礎知識様より
Unfortunately, App has stopped. ‐ 通信用語の基礎知識
俗に言う「ぬるぽ」ですね。つまり無い袖は振れないというわけです。
変数にNullを入れていたり宣言してないidを使用した時にでるようです。
2つのlayoutファイルについて
自動的に生成されるlayoutファイルですが、Android 4系からactivity_main.xmlに加えてfragment_main.xmlが追加されました。
このファイルの違いを理解していなかった事が今回悩んだ直接の原因です。
この2ファイルの違いは、アクティビティの上にパーツを配置するかフラグメントの上にパーツを配置するかの違いのようです。
ここでアクティビティとフラグメントの話をすると長くなるので以下を参照にしてください(ごめんなさい)
対処法
当たり前の話ですが、Logcatに慣れる事ですね・・・
自分はLogcat全然見ずにずっとググってました。Logcat見れたらすぐに解決できたと思います。
出典
大変参考にさせていただきました。ほんとうにありがとうございます。
こちらも、ありがとうございます。