【发布时间】:2015-10-20 15:59:38
【问题描述】:
在阅读了其他类似的问题后,我仍然找不到解决方案。我得到以下堆栈跟踪,它抱怨一个 jar 包含我开发的一个库,用 Java 1.7 编译:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing build/classes/main/com/utils/helpers/DateTimeAdapter.class
我在 Android Studio 和 Eclipse 中都将编译器级别设置为 java 7,在 build.gradle 文件中添加 sourceCompatibility 和 targetCompatibility 并没有解决这个问题。在两个 IDE 中也正确设置了 JDK 的路径。
我发现 0034 是 Java 8 的十六进制,但它甚至没有安装在我的机器上。
我也尝试过编辑thread 中建议的 proguard.bat,但没有成功。
有人对此有什么想法吗?
【问题讨论】:
-
你知道你的android构建工具的版本吗? Java 7 支持仅在版本 19 中添加。
-
我正在使用构建工具 21.1.2 并编译到 sdk 21
-
您可能已经看过并尝试过这个,但如果没有,那好吧,我想读一读:stackoverflow.com/questions/24662801/…
-
javap -verbose build/classes/main/com/utils/helpers/DateTimeAdapter.class这说明了什么? -
检查文件是否以0xcafebabe等开头:rgagnon.com/javadetails/java-0544.html
标签: java android android-studio