Android

Android onClick(View) はスーパークラスのメソッドをオーバーライドする必要があります 【Android TIPS】

Posted 9月 30 2012 by Teachers  , , with 0 コメント

Androidの開発中にこんなエラーが表示されることがあります。

 

型 MainActivity のメソッド onClick(View) はスーパークラスのメソッドをオーバーライドする必要があります

WS000176

 

 

「@Override」を削除すればエラー自体は解消しますが、いまいち気持ち悪いですよね。

原因は、Javaコンパイラーが1.6以上になっていないことなのです。

 

Javaコンパイラーの変更方法

1.プロジェクト名(HelloWorld等)を右クリック→プロパティー

2.Javaコンパイラーをクリック

3.「プロジェクト固有の設定を可能にする」にチェックを入れ、「コンパイラー準拠レベル」を1.6にします。

WS000177

 

4.OKをクリックすると、ダイアログが表示されるので「はい」をクリック

WS000178

 

エラーが解消されたはずです。

 

 

エラーの発生原因は?

「@Override」はアノテーションという機能で、今回の場合は”onClick()メソッドをオーバーライドしています”という印付けしている機能になります。

たとえば、引数やメソッド名を誤ったタイプをしていると、コンパイルエラーを出してプログラマに知らせてくれるのです。

 

今回のonClick()メソッドはOnClickListenerインタフェースに定義されている”抽象メソッド”です。

実は、JDK1.5以前では抽象メソッドのオーバーライドはできなかったのです。

(スーパークラスのメソッドのオーバーライドのみサポートしていました。)

しかし、JDK1.6で機能強化が図られ、抽象メソッドのオーバーライドもサポートするようになりました。

 

Eclipse 4.2 (Juno)ではデフォルトのJDKが1.6になりましたので、このエラーは発生しませんが、

Eclipse 3.7 (Indigo)以前のものをお使いの方は、JDK1.5がデフォルトになっていますので発生することがあります。


Android TIPS



  未経験OKの仕事 |  上場企業の仕事 |  高待遇の仕事 |  外資系の仕事 |  社内SEで検索 |  自社サービスで検索





メールアドレス
ご質問・問い合わせ等、ご自由にお書きください。