Android開発初心者がよくやる失敗【Javaのバージョンが古い】


Android開発初心者がよくやる失敗シリーズ、今回は Javaのバージョンが古くて出るエラーについてです。

これまでTechBoosterでは、Android開発初心者がよくやる失敗開発環境構築編の第1弾第2弾で、以下の4点について解説してきました。

  • システム環境変数が適切でない
  • ADTプラグインがインストールできない
  • システム環境変数の設定で、フォルダ名が違う
  • エミュレータが起動しない

今回は、Javaのバージョンが古くて出てしまうエラーについてフォーカスし、解説します。

プロジェクトをインポートしたら、エラーだらけや!

サイト上にアップされているプロジェクトや、友人からサンプルとしてもらってきたプロジェクトをインポートしたらエラーだらけ!

ということが、稀にあるかと思います。

「ソースコードは間違ってないのに…なんでだよ…orz」
と、悲しくなってしまうことを、1度は経験したことがあるかもしれません。

Javaのバージョンが古くて出る代表的なエラーは、次の2つです。

  • @Overrideがエラー
  • 「@Overrideを消せ」と言われる

@Overrideがエラー

@Overrideがエラーになるのは、Javaのバージョンが1.4以前のものに設定されているからです。
@Overrideのようなものは「アノテーション」と呼ばれ、Java5からの機能です。

エラー内容を見てみると、次の図のように「注釈はソース・レベルが1.5の場合にのみ使用可能です」と表示されます。

上の図のようなエラーがでたら、Javaのバージョンを上げてあげましょう。
Eclipseの環境設定から、Javaのバージョンの変更が行えます。

メニューバー「ウィンドウ」→「設定」で、環境設定画面を開きます。

環境設定画面の左側のリストから、「Java」→「コンパイラー」を選択します。

「コンパイラー」画面の上部に、コンパイラ準拠レベルを選択するプルダウンメニューがあるので、そこから最新バージョンを選択します。(今回は1.6)

コンパイラーのレベルを選択して「適用」ボタンを押すと、「コンパイラー設定が変更されました。変更を有効にするには、再度フル・ビルドを行う必要があります。ここでフル・ビルドを行いますか?」とメッセージが出るので、「はい」を選択します。

以上で、Javaのバージョンを最新バージョンに上げる設定が完了しました。
あとは「OK」ボタンを押して、環境設定画面を閉じましょう。

「@Overrideを消せ」と言われる

次の図のように「スーパークラスのメソッドをオーバーライドする必要があります」とエラーが表示され、修正の候補として「@Overrideを消せ」と言われるのは、Javaのバージョンが1.5に設定されているからです。

「@Overrideがエラー」でも紹介したように、Javaのバージョンを最新に上げてあげることで、このメッセージが無くなります。

ここで注意!

EclipseのJavaの設定は元々最新バージョンになっているが、インポートしたプロジェクトのJavaの設定が古いバージョンになっている、ということがあります。

プロジェクトのJavaのバージョンを変更してあげましょう!

Javaのバージョンを変更したいプロジェクトを右クリック→「プロパティ」で、プロジェクトのプロパティ画面を表示し、プロパティ画面の左側のリストからJavaコンパイラーを選択します。

Javaコンパイラー画面の一番上「プロジェクト固有の設定を可能にする」のチェックボックスにチェックを入れます。

チェックボックスにチェックを入れると、「JDK準拠」の内容を変更できるようになります。

「JDK準拠」の内容を変更できるようになると、あとは上記「@Overrideがエラー」と「「@Overrideを消せ」と言われる」同様、コンパイラ準拠レベルを最新バージョンに変更し、「適用」ボタンを押して完了です。

プログラムは間違ってないのにJavaのバージョンの違いでエラーが出るなんて参ったよ

以上、「Android開発初心者がよくやる失敗【Javaのバージョンが古い】」でした。

One Comment