【问题标题】:Unsupported major.minor version 52.0 using ant [duplicate]不支持的major.minor 52.0版使用ant [重复]
【发布时间】:2016-09-12 16:50:00
【问题描述】:

我正在尝试编译 ics-openconnect android 应用程序(https://github.com/cernekee/ics-openconnect)。

我遵循了那个“自述文件”。但是,当我尝试调试时,它会发生错误。

错误:

-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

我该如何解决?

【问题讨论】:

  • 表示你的 android 类是针对 jdk 8 编译的。

标签: java android ant android-ndk openconnect


【解决方案1】:

您的问题实际上包含了答案。每个类都有版本字段,它由两个词组成:主要版本号和次要版本号。该版本遵循 java 签名“CAFEBABE”。对于要加载的类,签名必须正确,并且主版本应小于或等于活动 JRE(Java 运行时环境)支持的版本。换句话说,如果要加载将 Major Version 字设置为 52 的类,则应使用 Java 8 运行时。否则,您会得到输出中显示的异常。所以只有两种选择: 1:安装 Java 8 运行时。或者 2:仅使用使用 Java 6 SDK 构建的包。

【讨论】:

  • 哦,它的工作!太感谢了。我是白痴:(我安装了jdk 1.8
猜你喜欢
  • 2018-08-24
  • 2014-04-24
  • 2019-07-29
  • 2019-07-16
  • 2015-08-25
  • 2016-03-25
相关资源
最近更新 更多