当前位置: 首页 > 知识库问答 >
问题:

使用scala“坏类文件魔法”构建android应用程序

阎唯
2023-03-14

突然间,我的应用程序停止在Android Studio中构建。消息:

无法预料的顶级例外:ain.access解析异常:坏类文件魔术(cafebabe)或版本(0034.0000)在ain.java:83DirectClassFcom.android.dx.command.dexer.0(DirectClassF1.process)在ain.java:602DirectClassFcom.android.dx.cf.direct.(DirectClassFpener.process)在pener.java:284DirectClassFcom.android.dx.cf.direct.ToInterfacesIfNecessary(DirectClassFpener.process)在pener.java:166DirectClassFile.get魔术(DirectClassFile.java:251)在com.android.dx.command.dexer.Main.process(Main.java:704)在com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)在com.android.dx.command.dexer.Mcom.android.dx.cf.iface.300美元(Mcom.android.dx.cf.direct.)在ile.parseile.java:472美元FileBytes(Mcom.android.dx.cf.direct.)在ile.parseClassPathOile.java:406存档(ClassPathOcom.android.dx.cf.direct.)在ile.parseClassPathOile.java:388(ClassPathOcom.android.dx.cf.direct.)在com. android. dx. dexr. dx.主进程一(Main. java: 632)在com. android. dx.

我没有更改JDK版本或AS版本。。。

但是我检查了默认Java环境,它被设置为1.8。将其更改为1.7会产生不同的错误:

错误:原因:scala/util/Properties$:不支持的主要。次要版本52.0

更多信息:虽然我的Scala库是为60.0(Java6)编译的,但在构建期间gradle缓存了一个确实为52.0构建的版本:

~.gradle\caches\modules-2\files-2.1\org。scala lang\scala library\2.12.0-M2\8453b80505a57d429f321b94e1fb4ca09b037fc0

发生了什么?我能做什么?!

共有3个答案

董同
2023-03-14

好的,再次供将来参考。这是由构建中的一个小更改引起的。格拉德尔。从…起

compile 'org.scala-lang:scala-library:2.11.+'

compile 'org.scala-lang:scala-library:2.+'

Scala 2.11被编译为Java6,Scala 2.12-Java8

林英朗
2023-03-14

切换到1.7并确保您所依赖的任何库(特别是scala标准库)都是为1.7构建的-从这个错误来看,scala似乎是。util。类路径上的属性(即scala标准库)是为1.8构建的。

杨乐意
2023-03-14

根据这个答案,ParseException的原因似乎是使用了Java1.8。

“Unsupported major.minor version 52.0”错误似乎是由于运行时与编译时代码不兼容。我相信少校。minor 52.0对应于Java 1.8,而51.0对应于Java 1.7。用Java 1.7完全重建项目可能会解决这个问题。

 类似资料:
  • 问题内容: 当我必须使用dx.bat转换为Dalvik字节码时,我需要使用命令行来构建我的Android应用程序 我的.class所在的路径是“ C:/ local_programs / testProject / bin / classes / test / Android / cmd /”。 它给了我这个错误 我的.class是按应有的方式生成的,据我所知,它们没有损坏。 我发现了这个问题的几

  • 我正在建立一个和机器人NDK合作的项目。到那时,我必须使用实验性的Gradle插件。Gradle同步没有错误,make也没有错误。但当我尝试“运行应用程序”时,Gradle给出了以下错误信息: 意外的顶级异常: 错误:com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.00

  • 在gradle attemp构建项目后有一个日志(使用Pro buf) :app:GeneratedBugProto失败 失败:生成失败,出现异常。 > 错误:任务“:app:generateDebugProto”的执行失败。 协议:标准输出:。stderr:/Users//app/build/extracted protos/main:警告:目录不存在/用户//app/src/debug/pro

  • 下载https://services.gradle.org/distributions/gradle-2.3-bin.zip 线程“main”javax.net.ssl.SSLHandShakeException中的异常: java.security.cert.CertificateException:找不到与services.gradle.org匹配的主题替代DNS名称。在sun.securit

  • 问题内容: 我正在尝试使用Gradle命令行界面构建我的Android应用。我还将 GRADLE_HOME / bin 添加到环境中。首先,我使用gradle init生成了包装,gradlew在我的项目文件夹中。现在,当我使用此包装程序构建我的应用程序( ./gradlew build )或使用其任何功能时,它尝试下载gradle-2.3.zip文件并失败(以下错误消息)。我不明白的是为什么gr

  • 问题内容: 在将大多数Java独立应用程序部署到生产环境后,它们最终都位于一个类似这样的文件夹中。 我想知道Maven中是否有任何东西可以为我构建该结构并将其放在tar.gz中。 问题答案: 这种部署目录结构非常流行,并已被apache maven和ant等许多出色的应用程序采用。 是的,我们可以通过在maven软件包阶段使用maven-assembly-plugin来实现。 示例pom.xml: