2016-06-19 11 views
21

Android Studioで空のプロジェクトを作成し、完全にコンパイルして動作する純粋なJavaモジュールを含むと、そのモジュール内のクラス:モジュールをプロジェクトに組み込んだ後に "サポートされていないクラスファイルバージョン52.0"を取得しました

Error:PARSE ERROR: Error:unsupported class file version 52.0

私が埋め込まれたJDKと私は私のシステムで持っているものを使用してプロジェクトを実行しようとした - JDK 8(1.8.0_91)、結果は同じです。私は.jarライブラリとしてモジュールが含まれていないことに注意。この

は、それが次の命令で輸入されたソースコードである:

include ':app', ':my-module' 
project(':my-module').projectDir = new File(settingsDir, '../my-module-java') 
私が知っている
+1

アンドロイドはまだJava 8をサポートしていないと思います。 –

+0

@ElliottFrisch私はターゲットバージョン '1_7'を指定します。 –

+0

@Sébastienおそらく、あなたは両方のモジュール用にbuild.gradleファイルを投稿し、あなたにそれをチェックさせることができます。 –

答えて

36

これは、モジュール自体に互換性オプションを指定しなかったために発生したエラーです。つまり、JDK 8をインストールして使用していて、アンドロイドプロジェクトがJava 1.7(デフォルトでAndroid SDK 23以降)を使用していて、Java 1.7を使用する仕様のないモジュールがある場合、そのモジュールはJDK 8のJava 1.8の構文を使用して、彼らは互換性およびJava 1.7を使用して、コンパイラではないため、エラーが発生しますと、Java 1.8をターゲットにされたクラスファイルを解析し、バージョン52

build.gradleを持つことはできません - このビルドファイルは、pを構築しながら、私は同様のエラーに直面してきました

apply plugin: 'java' 

buildscript { 
    tasks.withType(JavaCompile) { 
     sourceCompatibility = JavaVersion.VERSION_1_7 
     targetCompatibility = JavaVersion.VERSION_1_7 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 

    // Your libraries here 

} 
+1

私は 'java'プラグインを適用しませんが、同じ例外がまだあります –

+0

私のために問題を修正しました!私はjre1.8.0_121からjre7に切り替え、私のAppは最終的にコンパイルされました。 –

+0

https://stackoverflow.com/questions/26861011/android-compile-error-java-plugin-has-been-applied-not-compatible-withを避けるために、 'apply plugin: 'java''を省略しなければなりませんでした。 -android – OneWorld

3

、私が指定したターゲットバージョン1_7

Oracle Compatibility Guide for Java 8

たJava SE 8のクラスファイルのバージョンがJVM書または仕様書どおり52.0で、(一部で)言います。 Java SE 8コンパイラによって生成されたバージョン52.0のクラスファイルは、Java SEの以前のリリースでは使用できません。

ターゲットJava 7および再コンパイル。

2

モジュールレベルのためでありますルーツ。

Error:PARSE ERROR 
Error:unsupported class file version 52.0 

私は、Java 1.7へのJava 1.8から切り替えた後、私はこれらのエラーに直面しました。私のプロジェクトはいくつかのライブラリ、1つのappモジュール、3つのAndroidライブラリモジュール、2つのJavaライブラリモジュールで構成されています。私はAndroidライブラリで何も変更しませんでしたが、Javaライブラリのファイルbuild.gradleの依存関係に次の行を追加しました。

sourceCompatibility = 1.7 
targetCompatibility = 1.7 

それは私にとって問題を解決しました。解析エラーは、Java 1.8クラスをJava 1.7クラスに解析できなかったことが主な原因です。

-2

Android Studioを2.1から2.2.2にアップデートして初めてこのエラーが発生しました。システムにJava 1.7しかインストールされていなかったので困惑しました。 Android 2.2.2では、独自のJava 1.8 JRE(C:¥Program Files¥Android¥Android Studio¥jre)がインストールされていることが判明しているため、前述の純粋なJavaライブラリのbuild.gradleにsourceCompatibilitytargetCompatibilityを指定する必要があります。

apply plugin: 'java' 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    sourceCompatibility = 1.7 
    targetCompatibility = 1.7 
} 
+2

あなたはandroid project knowのためのjavaプラグインを適用できませんか? –

+0

これは私のアンドロイドプロジェクトで使用される純粋なJavaライブラリです – steveputz

関連する問題