3

ics-openconnect Android アプリケーション ( https://github.com/cernekee/ics-openconnect ) をコンパイルしようとしています。

その「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のみをインストールしました

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

4

1 に答える 1

6

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

于 2016-09-12T17:33:03.800 に答える