Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

Androidアプリ開発できるかな 012 「public 型 ##### はそれ独自のファイル内に定義されなければなりません」

「public 型 ##### はそれ独自のファイル内に定義されなければなりません」

このエラーも、雛形だけ作ってよそからコードをもらってきて貼り付けたときによく起きるエラーだ。

eclipse012-01

対処方法は以下のとおり。
eclipse012-03

つまり、
AlertDialogSample.java
から
AlertDialogSampleActivity.java
に名前を変更すればいいということらしい。

eclipse012-04

ちなみに、直したときにActivity を Avtivity としてしまい、気付いて訂正して実行したら、Eclipseのプロジェクト・エクスプローラー上ではエラーは無かったし、ビルドでもエラーは無かったのに、端末上では「問題が発生したため、########## を終了します。」という表示が出て実行されない。
eclipse012-05
LogCatではこんな感じで赤字が並んでいる。
eclipse012-06
とにかく一番上の行を取り出してみて、書いてある内容で検索してみると、
Please add your Activity in your AndroidManifest.xml.
というのを発見した。
確かに、Activityの名前を変更したりしてておかしくなったんだから、これはちょっと関係あるかも、と思って AndroidManifest.xml をチェックしてみると。
さっき間違えた Avtivity のままになってる。
eclipse012-07
ので、これを修正したら、ちゃんとエラー無く実行された。
いったい、どの部分がどのタイミングで書き換えられるのかがよくわかってない。
試しに同じことをもう一度はじめからやってみて、今度は Activity のスペリングミスをしないでファイル名を書き換えたら、今度は AndroidManifest.xml の方がまったく書き換わってなかった。
ごにょごにょやってるときの操作のどれかがトリガーになって書き換えられているはずだが、ごにょごにょやってる本人が把握してやってないのでそのタイミングは謎のままだ。

本日のEclipse様からのお告げ
「public型 ##### はそれ独自のファイル内に定義されなければなりません」というエラーでは、#####は#####.javaに書いてなければいけないので、ファイル名を#####に変更してシンクロさせる。
それに関連して、プロジェクト・エクスプローラー上ではエラー表示が無いのに、実行したら端末側でエラーになる場合は、AndroidManifest.xml の Activity の記述を確認する。

「Androidアプリ開発できるかな 013」へ



このエントリーをはてなブックマークに追加

Posted under: アプリケーション作成


コメントを残す

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

Time limit is exhausted. Please reload CAPTCHA.