Android Studioでプロジェクトをコンパイルしようとすると、次のようなエラーメッセージが表示されます。
Gradle: error: diamond operator is not supported in -source 1.6
私が見つけたすべてのプロジェクト設定でターゲットとして1.7を設定しました。プロジェクトSDKの1.7 SDKの下に表示されているパスも、Java 1.7インストールへの正しいパスです。
端末でJavaバージョンを実行している場合でも、Java 1.7を実行していることがわかります。
私はこれにJava_HOME env変数を設定しようとしました:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
エラーは消えません。どうすればエラーを解消できますか?
Java 7のサポートがビルドツール19で追加されました。ダイヤモンド演算子、マルチキャッチ、try-with-resources、スイッチ内の文字列などの機能を使用できるようになりました。build.gradle
に以下を追加します。
Android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
Gradle 1.7以降、Android gradle plugin 0.6以降が必要です。
リソースを使って試すにはminSdkVersion
19しか必要ないことに注意してください。他の機能は以前のプラットフォームで動作します。
上記の答えは古いかもしれませんが、新しいAndroid Studios 1では、モジュールを1.7(または望むなら1.6)で実行するために次のことを行います。 「ファイル」 - >「プロジェクト構造」をクリックします。実行するモジュールを選択してから、[Source Compatibility]および[Target Compatibility]の下で1.7を選択します。 「OK」をクリックしてください。
Androidの新しいスタジオバージョン(0.8.X)で変更できます。
[ファイル] - > [その他の設定] - > [デフォルト設定] - > [コンパイラ](左矢印をクリックして展開) - > [Javaコンパイラ] - > [プロジェクトのバイトコードバージョン]を変更できます。
最新のAndroid Studio 1.4。
「ファイル」 - >「プロジェクト構造」 - >「SDKの場所」 - >「JDKの場所」をクリックします。
また、モジュール(SDKの場所の下)に移動して個々のモジュールのJDKバージョン互換性を設定し、それに応じてソース互換性を編集することもできます。 (注意、これはAndroidモジュールにのみ適用されます)。
あなたのプロジェクトを右クリック> Open Module Setting> "Project Setting"セクションで "Project"を選択してください。
Project SDKを最新のもの(API 21など)に変更し、プロジェクトの言語レベルを7+に変更します。
現時点では、AndroidはJava 7、Java 6のみをサポートしていません。そのため、ダイヤモンド構文などのJava 7の新機能は現在サポートされていません。これをサポートするソースを見つけるのは簡単ではありませんが、Dalvicエンジンは Apache Harmony のサブセットに基づいて構築されています。 システム要件 Androidアプリを開発するには、少なくともJDK 6が必要であるとも述べられています(もちろんこれは実際の証拠ではありませんが、単なる目安です)。そして this は私が持っているのとほとんど同じです。もっと経済的なものが見つかったら、それを追加します。
編集:私が最初にこの答えを書いて以来、Java 7のサポートが追加されたようです。答えをSergii Pechenizkyiで確認してください。
Gradleに入り、sourceCompatibilityを探し、1.6から7。それは少なくとも私にとってはうまくいった。
モジュールの設定に入り、ソース/ターゲット互換性を1.7に設定することもできます。
これにより、Gradleに次のコードが生成されます。
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
ビルドには常に最新のSDKバージョンを使用してください。
compileSdkVersion 23
これは実行時の動作には影響しませんですが、最新のプログラミング機能を提供します。