179

Android Studio でプロジェクトをコンパイルしようとすると、次のエラーが発生します。

Gradle: error: diamond operator is not supported in -source 1.6

私が見つけたすべてのプロジェクト設定で、ターゲットとして 1.7 を設定しました。また、1.7 SDK 未満のプロジェクト SDK に表示されるパスは、Java 1.7 インストールへの正しいパスです。

ターミナルで java -version を実行しても、Java 1.7 で実行していると表示されます。

JAVA_HOME環境変数をこれに設定しようとしました:

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

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

4

8 に答える 8

291

ビルド ツール 19 で Java 7 のサポートが追加されました。ひし形演算子、マルチキャッチ、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 プラグイン 0.6 以降が必要です。

リソースを試すだけでminSdkVersion19 が必要であることに注意してください。他の機能は以前のプラットフォームで動作します。

android gradle プラグイン ユーザー ガイドへのリンク

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

于 2013-10-19T19:51:51.060 に答える
73

上記のこれらの回答は古いかもしれませんが、新しい Android Studios 1 では、次のようにしてモジュールが 1.7 (または必要に応じて 1.6) で実行されることを確認します。[ファイル] --> [プロジェクト構造] をクリックします。実行するモジュールを選択し、[ソースの互換性] と [ターゲットの互換性] で 1.7 を選択します。「OK」をクリックします。

Android Studios 1のプロジェクト構成画面

于 2014-12-27T16:52:10.160 に答える
8

最新の Android Studio 1.4。

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

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

于 2015-10-14T06:03:21.680 に答える
5

プロジェクトを右クリック>モジュール設定を開く>「プロジェクト設定」セクションで「プロジェクト」を選択

プロジェクト SDK を最新 (API 21 の可能性があります) に変更し、プロジェクトの言語レベルを 7+ に変更します。

于 2015-03-16T16:24:24.007 に答える
4

現在、Android は Java 7 をサポートしておらず、Java 6 のみをサポートしています。したがって、ダイヤモンド構文などの Java 7 の新機能は現在サポートされていません。これをサポートするソースを見つけるのは簡単ではありませんが、バージョン 6 までの Java しかサポートしていなかったApache Harmonyのサブセットに基づいてDalvicエンジンが構築されていることがわかりました。少なくとも JDK 6 が必要であることを確認してください (もちろん、これは本当の証明ではなく、単なる目安です)。そして、これは私が持っているものとほとんど同じです。もっと本質的なものを見つけたら、追加します。

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

于 2013-07-14T10:39:58.517 に答える
2

Gradle にアクセスしてsourceCompatibilityを探し、 1.6から7に変更します。それは少なくとも私にとってはうまくいきました。

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

モジュール設定画面

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

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
于 2016-11-30T14:53:59.610 に答える
2

ビルドには常に最新の SDK バージョンを使用します。

compileSdkVersion 23

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

于 2016-06-21T20:04:42.790 に答える