我的应用突然停止在Android Studio中构建。消息:
意外的顶级例外情况: com.android.dx.cf.iface.ParseException:错误的类文件魔法 (cafebabe)或版本(0034.0000)at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472) 在 com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406) 在 com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388) 在 com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251) 在com.android.dx.command.dexer.Main.processClass(Main.java:704)at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)at at com.android.dx.command.dexer.Main.access $ 300(Main.java:83)at com.android.dx.command.dexer.Main $ 1.processFileBytes(Main.java:602) 在 com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) 在 com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) 在 com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) 在com.android.dx.command.dexer.Main.processOne(Main.java:632)at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)at at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)at 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)...解析时 pl / qus / xenoamp / helper / XenoScala $ .class 1错误;中止
我没有更改JDK版本或AS版本......
但是我已经检查了默认的Java环境并将其设置为1.8。将其更改为1.7会产生不同的错误:
错误:原因:scala / util / Properties $:不支持的major.minor版本52.0
更多信息:虽然我的Scala库是为60.0(Java 6)编译的,但在构建gradle缓存期间,确实为52.0构建了一个版本:
〜.gradle \缓存\模块-2 \文件-2.1 \ org.scala琅\阶库\ 2.12.0-M2 \ 8453b80505a57d429f321b94e1fb4ca09b037fc0
出了什么问题?我该怎么办?!
答案 0 :(得分:0)
According to this answer,看来ParseException的原因是使用Java 1.8。
似乎"不支持的major.minor版本52.0"错误是由于运行时与编译时代码不兼容。我相信major.minor 52.0对应Java 1.8,而51.0对应Java 1.7。使用Java 1.7完全重建项目可能会使问题消失。
答案 1 :(得分:0)
切换到1.7并确保您依赖的任何库(特别是scala标准库)是为1.7构建的 - 从该错误看来,类路径上的scala.util.Properties
(即scala标准库)是专为1.8。
答案 2 :(得分:0)
好的,再次供将来参考。这是由build.gradle的一个小变化引起的。从
compile 'org.scala-lang:scala-library:2.11.+'
到
compile 'org.scala-lang:scala-library:2.+'
Scala 2.11编译为Java 6,Scala 2.12 - Java 8