2016-06-19 81 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

我不認爲android還支持Java 8。 –

+0

@ElliottFrisch我知道,我指定了目標版本'1_7'。 –

+0

@Sébastien也許你可以發佈你的兩個模塊的build.gradle文件,讓我們檢查一下。 –

回答

36

明白了,錯誤是因爲我沒有在模塊本身指定兼容性選項。這意味着如果您已經安裝並使用JDK 8,並且您的Android項目使用Java 1.7(默認情況下是Android SDK 23及以下版本),並且它包含的模塊沒有任何使用Java 1.7的規範,那麼該模塊將與JDK 8使用Java 1.8的語法和,因爲他們是不兼容的,並且使用Java 1.7無法解析這是針對1.8的Java類文件的編譯器和擁有的版本52

的build.gradle會有一個錯誤 - 這個build文件是模塊級

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,我的應用程序終於編譯完成。 –

+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的類文件版本是52.0按了JVM的specifica灰。由Java SE 8編譯器生成的版本52.0的類文件不能在Java SE的早期版本中使用。

目標Java 7並重新編譯。

2

,同時建立與p我已經遇到了類似的錯誤roject。

Error:PARSE ERROR 
Error:unsupported class file version 52.0 

我面對這些錯誤我已經關掉從Java 1.8到Java 1.7後。我的項目由幾個庫,1個應用程序模塊,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

你不能應用java插件的android項目知道嗎? –

+0

這是我的android項目使用的純java庫 – steveputz

相關問題