2016-09-12 23 views
3

ics-openconnect androidアプリケーション(https://github.com/cernekee/ics-openconnect)をコンパイルしようとしています。antを使用してサポートされていないmajor.minorバージョン52.0

「ReadMe」に従った。しかし、私がデバッグしようとすると、エラーが発生します。

エラー:

-dex: 
    [dex] input: /home/yj/ics-openconnect/bin/classes 
    [dex] input: /home/yj/ics-openconnect/libs/openconnect-wrapper.jar 
    [dex] input: /home/yj/ics-openconnect/libs/acra-4.5.0.jar 
    [dex] input: /home/yj/ics-openconnect/libs/stoken-wrapper.jar 
    [dex] Pre-Dexing /home/yj/ics-openconnect/libs/openconnect-wrapper.jar -> openconnect-wrapper-58de756051305e9ad3753d649df24013.jar 
    [dx] Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0 
    [dx]  at java.lang.ClassLoader.defineClass1(Native Method) 
    [dx]  at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    [dx]  at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    [dx]  at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    [dx]  at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    [dx]  at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    [dx]  at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    [dx]  at java.security.AccessController.doPrivileged(Native Method) 
    [dx]  at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    [dx]  at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    [dx]  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    [dx]  at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    [dx] Could not find the main class: com.android.dx.command.Main. Program will exit. 

BUILD FAILED 

と、私のjava:

$java -version 
java version "1.6.0_45" 
Java(TM) SE Runtime Environment (build 1.6.0_45-b06) 
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode) 

のjavac:

$javac -version 
javac 1.6.0_45 

私は バージョンは52.0手段 'JDK 1.8' ということを知っているが、私は唯一のインストールjdk 1.6

どうすれば修正できますか?

+0

あなたのアンドロイドクラスがjdk 8に対してコンパイルされたことを意味します。 – SMA

答えて

4

あなたの質問には実際に答えが含まれています。各クラスには、メジャーバージョン番号とマイナーバージョン番号の2つの単語で構成されるバージョンフィールドがあります。バージョンは、Java署名「CAFEBABE」に従います。クラスをロードするには、署名が正しくなければならず、メジャーバージョンはアクティブなJRE(Javaランタイム環境)でサポートされているバージョン以下でなければなりません。言い換えると、メジャーバージョンワードが52に設定されたクラスをロードする場合は、Java 8ランタイムを使用する必要があります。そうしないと、出力に例外が表示されます。したがって、2つのオプションしかありません。 1:Java 8ランタイムをインストールします。または2:Java 6 SDKでビルドされたパッケージのみを使用します。

+0

ああ動作しています!どうもありがとうございます。私はばかだった:(私はjdk 1.8をインストールした –

関連する問題