2

Google ソースから独自の AOSP でビルドしようとしています。Googleドキュメントに記載されている手順に従い、ビルドに成功し、デバイスにイメージを正常にフラッシュすることができました. ただし、いくつかの変更を加えた後、再度ビルドを試みました (基本的には、いくつかのログを追加して試してみました)。ビルドでエラーが発生しました。その後、もう一度作成しようとしましたが、Javac 1.6が見つかりましたと表示されました。Javac 1.7 が必要です。次に、次のコマンドを使用して、この特定の問題に対する回答をたどりました。

 update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).

  Selection    Path                                         Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   1051      auto mode
* 1            /usr/lib/jvm/j2sdk1.6-oracle/bin/javac        315       manual mode
  2            /usr/lib/jvm/java-7-openjdk-amd64/bin/javac   1051      manual mode

次に、オプション 0 を選択しました。その後、もう一度作成を試みました。今回は以下のエラーで失敗しました。

java.lang.UnsupportedClassVersionError: com/google/doclava/Doclava : Unsupported major.minor version 51.0 android build

この質問に対するすべての回答を確認した後 (何度も質問されていることがわかりました)、コンパイル時間 (上位バージョン) と実行時 (下位バージョン) の JDK が一致しないため、Java 1.7 を使用して再コンパイルする必要があることがわかりました。Androidビルドでそれを行うにはどうすればよいですか? また、「Javac 1.6 が見つかりました。Javac 1.7 が必要です」というエラーが表示された理由にも驚いています。Java 1.6 を使用してビルドを正常に作成したためです。

4

2 に答える 2

8

この場合、javac の問題ではなく、javadoc の問題です。バージョンを確認するには: javadoc -J-version(はい、変です)。

したがって、次を使用する必要があります。

update-alternatives --config javadoc
于 2016-09-26T12:16:05.933 に答える
0

このエラーは、インストールされているよりも新しいバージョンの Java でコンパイルされた Java「クラス」ファイルをロードしようとしていることを意味します。

たとえば、.classファイルが 用にコンパイルされている可能性がありJDK 7、それを で実行しようとしていますJDK 6

したがって、解決策は次のいずれかです。

  • Java ランタイムをアップグレードするか、
  • ソースがある場合は、ローカル Java コンパイラ (ある場合) を使用してクラスを再コンパイルします。

    javac ファイル名.java

この詳細にアクセスしてください: How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version

于 2016-05-09T09:52:31.253 に答える