2017-02-14 68 views
0

我想建立使用CLI科爾多瓦的Android應用程序作爲科爾多瓦CLI構建Android失敗的異常不支持MAJOR.MINOR版本

cordova build android 

但構建失敗,出現以下異常

Error: cmd: Command failed with exit code 1 Error output: 
java.lang.UnsupportedClassVersionError: com/android/dx/command/Main :   Unsupported major.minor version 52.0 
java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) 
Exception in thread "main" 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) 
Exception in thread "main" 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':transformClassesWithDexForDebug'. 
> com.android.build.api.transform.TransformException:  java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 1 

我該如何解決這個問題?我正在使用Java版本1.7和Android Studio v2.2.3,並在sdk文件夾中有android-23。

回答

0

在Java和Android版本中存在問題。請減少您的Java版本。 從Java 8到次要版本。

如果您的目標是Android 5.0或更高版本,則需要Java 7或更高版本。 這是從Android的官方網頁。

你之前設置了Android Studio中,要確保你已經安裝了JDK 6或更高 (單獨的JRE是不夠的)-jdk 7時 開發Android 5.0及更高版本。要檢查是否安裝了JDK (以及哪個版本),請打開終端並鍵入javac -version。如果JDK不可用或版本低於6,請去下載JDK。

+0

當我與Java 7的早期嘗試它仍然給了同樣的問題。當我運行'cordova build android'時,前幾行是'ANDROID_HOME = D:\ Android \ sdk JAVA_HOME = C:\ Program Files \ java \ jdk1.7.0_79' – Sumit

+0

嘗試使用android sdk 23和jdk 7.問題與jre版本您的jdk和jre版本應該是相同的 –

0

您試圖將使用Java 1.8編譯器編譯的類運行到較低的JRE版本,例如JRE 1.7或JRE 1.6。 你的輸出顯示你不在使用Java 1.8

> com.android.build.api.transform.TransformException:  java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 1 

Process 'comman`enter code here`d 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' <-------- 
+0

是的,謝謝指出,我已經把日誌放在Java 7中試了。已更新問題。 – Sumit

+0

您是否在使用任何可能不支持java 1.8的庫? – Cottontree

+0

我剛剛創建了一個基本的cordova項目,併爲inAppBrowser和GeoLocation添加了插件。然後,當我建立應用程序時,我得到這個錯誤。 – Sumit

相關問題