为了账号安全,请及时绑定邮箱和手机立即绑定

坏类文件魔术或版本

坏类文件魔术或版本

holdtom 2019-08-08 17:00:02
坏类文件魔术或版本我已经知道这个问题已经经常被问及答案,但我发现没有一个答案能解决我的问题。这是错误:Error:Gradle: Execution failed for task ':ffcommunity:preDexDebug'.  com.android.ide.common.internal.LoggedErrorException: Failed to run command:     D:\Android SDK\sdk\build-tools\20.0.0\dx.bat --dex --output D:\Users\ReVo\Documents\IntelliJ IDEA\FFCommunity\ffcommunity\build\intermediates\pre-dexed\debug\bananaquery-2ee85432877a057e7414910b8127805535139d5d.jar D:\Users\ReVo\Documents\IntelliJ IDEA\FFCommunity\ffcommunity\libs\bananaquery.jarError Code:     1Output:     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:665)         at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)         at com.android.dx.command.dexer.Main.access$600(Main.java:78)         at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)         at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)错误是bad class file magic (cafebabe) or version (0034.0000)。我在同一天多次构建并执行应用程序没有问题,但现在这个消息每次都失败了。项目SDK Android API 19 Platform和项目级别是1.7。CompileSDK 19和buildToolsVersion是'20.0.0'。编译选项:compileOptions {     sourceCompatibility JavaVersion.VERSION_1_7     targetCompatibility JavaVersion.VERSION_1_7}在dependencies我有:compile files('libs/bananaquery.jar')该库是使用Android API 19 Platform具有项目级别的SDK构建的1.7。我的.jar文件在libs/文件夹中。我使用IntelliJ IDEA 14 Preview,可能是原因?使用IntellIJ IDEA 13时,它仍然停留在“Gradle sync”编译的文件可能是无用的,因为我有compile fileTree(dir: 'libs', include: ['*.jar'])太多
查看完整描述

3 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

我的JAVA_HOME变量更改为Java 1.8,并在编译纯java模块作为我的android项目的依赖项时收到此错误消息。

java模块的build.gradle

apply plugin: 'java'

解决方案#1:快速弄脏

我把它设置JAVA_HOME为1.7来修复它:

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

解决方案#2:更改编译器版本:

在build.gradle中将此特定模块更改回1.7

apply plugin: 'java'sourceCompatibility = 1.7targetCompatibility = 1.7


查看完整回答
反对 回复 2019-08-08
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

好的,我的坏。

在Project SDK部分,当你添加一个时,Android SDK你应该提供Java SDK和我所有的Android SDK都使用Java 8作为SDK,所以它创建了错误版本的类文件,即使项目级别是1.7(我不知道为什么,我认为一切都是由项目级别选择的)。

现在我改变了SDK(java version "1.x.0"部分)。


它好像编译好了。

之前工作的原因是因为我的SDK是1.8和不是Android API x


查看完整回答
反对 回复 2019-08-08
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

在每个build.grade文件中将所有模块java版本更改为java 1.7。

在插件中,它是库和应用程序

compileOptions{
    sourceCompatibility=JavaVersion.VERSION_1_7
    targetCompatibility=JavaVersion.VERSION_1_7}

在java中

sourceCompatibility= 1.7targetCompatibility= 1.7


查看完整回答
反对 回复 2019-08-08
  • 3 回答
  • 0 关注
  • 565 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信