2013-12-09 25 views
51

Android開発の初心者です。 AndroidでJDK 7を使用して開発した既存のJavaコードを使用できますか?AndroidはJDK 6または7をサポートしていますか

この関数は、xerces domとxsltおよびxpathapiを使用します。現在、Android Eclipse ADT環境をインストールすると、これらの関数はコンパイルされません。 Androidデバイス自体がJRE 6または7をサポートしているかどうかも知りたいですか?

+0

ビルドツールからアンドロイド起動をサポートしています。http:// stackoverflowの。com/questions/8578441/can-the-android-sdk-work-with-jdk-1-7/9567402#9567402 – turbo

+0

返信いただきありがとうございます。それでも私の質問には答えません。 – user3084351

+1

質問が重複している間は、他の質問(それ自体は重複しています)の回答はhttp://stackoverflow.com/questions/14487682/diamond-operator-is-not-supportedまたは「元の」http: /stackoverflow.com/questions/17637179/how-to-set-source-1-7-in-android-studio-and-gradleは役に立たないだけでなく間違っています。 以下に最も上に挙げた答えで指摘されているように、ダイヤモンド演算子と他の多くの機能がサポートされています。 –

答えて

4

まず、Java JDKとJREの違いがあります。 JREはJava Runtime Environmentであり、JDKはJava Development Kitです。これは、既存のAndroid SDKと共にAndroidアプリケーションの開発に必要なJDKです。

Android SDKはJDK 6または7のいずれかを使用できますが、のみではJDK 6 APIを使用できます。

+0

返事をありがとう。アンドロイド・エクリプス環境は、jdk 6で正規のEclipseの下で開発されたコードをコンパイルしていません。私は、Javaビルド・パスにjdk 6ライブラリを含めました。 – user3084351

77

6つの機能のみのJDKサポートもともとAndroidの開発ツールOracleのJDK 6ではないので、完全にJDK 6をサポートしていません。しかし、それは2013年10月にAndroidのメーカー0.3.2で最初に、変更された項目:ダイヤモンド演算子、マルチキャッチのような言語機能のためのhttp://tools.android.com/recent/androidstudio032released

サポート、トライ・リソースとなど、スイッチ内の文字列、 新しいプロジェクトを作成するときに、ソース言語レベルを指定することができます: enter image description here これらの言語機能は、Android KitKatだけでなく、古いバージョンのAndroidでも使用できます。それには1つ例外がありますあなたのminSdkVersionがが19未満であればトライして、リソースしたがってminSdkVersionが19を必要とします、Studioはフラグのtry-と資源のコード内の任意の用途は以下となります。

その後、 ADTプラグイン2014年3月では22.6で、以下を参照してくださいマルチキャッチのようなJava 7言語機能のためのhttp://developer.android.com/tools/sdk/eclipse-adt.html

追加支援をしてみてください - と - リソース、およびダイヤモンド演算子。これらの機能には、ビルドツールのバージョン19以上が必要です。リソースの試行にはminSdkVersion 19が必要です。残りの新しい言語機能にはminSdkVersion 8以上が必要です。 あなたは、Androidがどのとの互換性は100%であることを意図していないJDK 7上でEclipseを実行し、JDK 7

を使用するアプリケーションプロジェクトの設定を変更していることを確認し、ADT 22.6.0をインストールした後に新しい言語機能を使用するにはJava SE APIバージョン(6または8ではなく)。これは、GoogleがJavaを断片化していると非難して、Oracleに対して訴訟を起こした理由です。いくつかのAPIはアンドロイドでSwingとして実装することは不可能です。アンドロイドのクローズボタン付きのウィンドウを想像してみてください!他のものは遅れて実装されました。例:CharsetクラスはJava SE 1.4にありますが、Android APIレベル19で実装されたJava 7のAutoClosableのアンドロイドAPI 9で実装されています。一部のAPIは存在しますが、Consoleとは異なる目的のために存在します。

+4

うわー、あまりにも遠くない将来にJava 8の機能をサポートすることを望むかもしれません。 –

+3

@SimonAndréForsberg私はそう願っています。 –

+0

新しいADTは新しい言語機能をサポートしていますが、新しいAPIがサポートされているかどうか(たとえばPhaser)は問題ではありません。 – Sheepy

2

はい、JDK 7が、今これはあなたを助けるかもしれない19

関連する問題