Tips

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

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アプリ開発の必須知識!JAVAプログラミングを学べる連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search