【问题标题】:UNEXPECTED TOP-LEVEL EXCEPTION: Error:com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000) android studio意外的顶级异常:错误:com.android.dx.cf.iface.ParseException:坏类文件魔术(cafebabe)或版本(0034.0000)android studio
【发布时间】:2016-02-05 21:03:44
【问题描述】:

我正在开发一个 android 应用程序,其中我将一个纯 java 库作为 jar 文件导入,之后当我尝试运行该应用程序时它给了我 2 个错误,

1. UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.RuntimeException: Exception parsing classes
at com.android.dx.command.dexer.Main.processClass(Main.java:752)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:718)
at com.android.dx.command.dexer.Main.access$1200(Main.java:85)
at com.android.dx.command.dexer.Main$FileBytesConsumer.processFileBytes(Main.java:1645)
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:672)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:569)
at com.android.dx.command.dexer.Main.runMultiDex(Main.java:366)
at com.android.dx.command.dexer.Main.run(Main.java:275)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)
Caused by: 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.parseClass(Main.java:764)
at com.android.dx.command.dexer.Main.access$1500(Main.java:85)
at com.android.dx.command.dexer.Main$ClassParserTask.call(Main.java:1684)
at com.android.dx.command.dexer.Main.processClass(Main.java:749)
... 12 more
2 errors; aborting

2.* What went wrong:
   Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException:
com.android.ide.common.process.ProcessException:
org.gradle.process.internal.ExecException: Process 'command 'C:\Program    Files\Java\jdk1.8.0_20\bin\java.exe'' finished with non-zero exit value 1

我尝试添加应用插件:'java' 但没有运气

还在 android studio 中使用相同版本的 jdk 1.8.0_20 导出 jar

构建.gradel

apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "in.automator.automator"
    minSdkVersion 18
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        debuggable true
    }
}
}dependencies {
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile files('src/main/java/in/automator/automator/marf.jar')}

settings.gradel

include ':app'

提前致谢。

【问题讨论】:

  • @toolkit 我已经在问题中提到我尝试过应用插件:'java'
  • 您的automator/marf 很可能是为java 8 编译的。为java 7 重新编译
  • @njzk2 你能指导我如何在 Eclipse 中做到这一点吗?

标签: java android android-studio


【解决方案1】:

检查你的 settings.gradle 和 build.gradle 文件,看看你是否已经包含了两次引用。

【讨论】:

  • 请检查有问题的gradel文件。
猜你喜欢
  • 1970-01-01
  • 2016-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-07
  • 2015-08-29
相关资源
最近更新 更多