web-dev-qa-db-ja.com

Android StudioとGradleで-source 1.7を設定する方法

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

エラーは消えません。どうすればエラーを解消できますか?

175
simekadam

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 gradle pluginユーザーガイドへのリンク

ソースとターゲットの違いを確認するためのリンク

285

上記の答えは古いかもしれませんが、新しいAndroid Studios 1では、モジュールを1.7(または望むなら1.6)で実行するために次のことを行います。 「ファイル」 - >「プロジェクト構造」をクリックします。実行するモジュールを選択してから、[Source Compatibility]および[Target Compatibility]の下で1.7を選択します。 「OK」をクリックしてください。

Project Structure screen of Android Studios 1

72
Simon

Androidの新しいスタジオバージョン(0.8.X)で変更できます。

[ファイル] - > [その他の設定] - > [デフォルト設定] - > [コンパイラ](左矢印をクリックして展開) - > [Javaコンパイラ] - > [プロジェクトのバイトコードバージョン]を変更できます。

enter image description here

14
San

最新のAndroid Studio 1.4。

「ファイル」 - >「プロジェクト構造」 - >「SDKの場所」 - >「JDKの場所」をクリックします。

また、モジュール(SDKの場所の下)に移動して個々のモジュールのJDKバージョン互換性を設定し、それに応じてソース互換性を編集することもできます。 (注意、これはAndroidモジュールにのみ適用されます)。

8
Elye

あなたのプロジェクトを右クリック> Open Module Setting> "Project Setting"セクションで "Project"を選択してください。

Project SDKを最新のもの(API 21など)に変更し、プロジェクトの言語レベルを7+に変更します。

5
kunal

現時点では、AndroidはJava 7、Java 6のみをサポートしていません。そのため、ダイヤモンド構文などのJava 7の新機能は現在サポートされていません。これをサポートするソースを見つけるのは簡単ではありませんが、Dalvicエンジンは Apache Harmony のサブセットに基づいて構築されています。 システム要件 Androidアプリを開発するには、少なくともJDK 6が必要であるとも述べられています(もちろんこれは実際の証拠ではありませんが、単なる目安です)。そして this は私が持っているのとほとんど同じです。もっと経済的なものが見つかったら、それを追加します。

編集:私が最初にこの答えを書いて以来、Java 7のサポートが追加されたようです。答えをSergii Pechenizkyiで確認してください。

4
blalasaadri

Gradleに入り、sourceCompatibilityを探し、1.6から7。それは少なくとも私にとってはうまくいった。

モジュールの設定に入り、ソース/ターゲット互換性を1.7に設定することもできます。

モジュール設定画面

これにより、Gradleに次のコードが生成されます。

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
2
Feorice

ビルドには常に最新のSDKバージョンを使用してください。

compileSdkVersion 23

これは実行時の動作には影響しませんですが、最新のプログラミング機能を提供します。

2
DenisKolodin