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

Android studio(2.1.1,2016年4月28日)在将字节码转换为dex时出现奇怪错误。Dex无法分析版本52字节代码

融烨磊
2023-03-14

我正在尝试构建我的项目,并得到这个奇怪的错误(因为所有这些都在以前的AS版本中工作得很好)

Error:Error converting bytecode to dex:
Cause: Dex cannot parse version 52 byte code.
This is caused by library dependencies that have been compiled using Java 8 or above.
If you are using the 'java' gradle plugin in a library submodule add 
targetCompatibility = '1.7'
sourceCompatibility = '1.7'
to that submodule's build.gradle file.

我知道问题是(正如错误告诉我的那样)我的一些依赖项是用java版本编译的。但是我怎么知道是哪一个呢?

这是我的身材。格拉德尔

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

android {

    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.android.app.mysuperapp"
        minSdkVersion 15
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        androidTest {
            setRoot('src/test')
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    sourceCompatibility = 1.7
    targetCompatibility = 1.7

    //<!-- TestFrameWork
    testCompile 'org.robolectric:robolectric:3.1-rc1'
    androidTestCompile 'junit:junit:4.12'
    //
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'me.dm7.barcodescanner:zxing:1.8.4'
    //----Materal design libs
    compile 'com.github.rey5137:material:1.2.2'
    compile 'com.github.navasmdc:MaterialDesign:1.5@aar'
    compile 'com.rengwuxian.materialedittext:library:2.1.4'
    compile('com.github.ganfra:material-spinner:1.1.0') {
        exclude group: 'com.nineoldandroids', module: 'library'
        exclude group: 'com.android.support', module: 'appcompat-v7'
    }
    //<--
    compile 'se.emilsjolander:stickylistheaders:2.7.0'
    compile('com.thoughtworks.xstream:xstream:1.4.8') {
        exclude group: 'xmlpull', module: 'xmlpull'
    }
    //----LogBack&SLF4J
    compile 'org.slf4j:slf4j-api:1.7.21'
    compile 'com.github.tony19:logback-android-core:1.1.1-5'
    compile('com.github.tony19:logback-android-classic:1.1.1-5') {
        // workaround issue #73
        exclude group: 'com.google.android', module: 'android'
    }
    compile 'com.jakewharton:butterknife:8.0.1'
    apt 'com.jakewharton:butterknife-compiler:8.0.1'
}

我已经在SO上搜索了很多类似的问题(比如这个或这个),但是添加这些行来构建gradle

dependencies {

sourceCompatibility = 1.7
targetCompatibility = 1.7
}

没有解决我的问题。我很困,需要有人帮助。提前谢谢。

共有1个答案

楚浩然
2023-03-14

您的问题是编译('com.thoughtworks.xstream:xstream:1.4.8'),它依赖于Java 8

版本1.4.7不依赖于Java8,因此如果您可以使用1.4.7,那么修复非常简单。

 类似资料:
  • 项目清理和重建工作成功,但如果我想运行应用程序,我得到这样的错误。 错误:将字节码转换为Dex时出错:原因:Dex无法解析版本52字节码。这是由使用Java8或更高版本编译的库依赖项造成的。如果在库子模块中使用'java'gradle插件,请将targetCompatibility='1.7'sourceCompatibility='1.7'添加到该子模块的build.gradle文件中。 错误:

  • 我使用samsung knox sdk,正在更新knox版本(2.7.1)。这个错误在尝试编译我的应用程序时出现。 错误详细信息: 错误:将字节码转换为Dex时出错:原因:Dex无法解析版本52字节码。这是由使用Java8或更高版本编译的库依赖项造成的。如果在库子模块中使用'java'gradle插件,请将targetCompatibility='1.7'sourceCompatibility='

  • 清理和生成项目 将“sourceCompatibility=”1.7“targetCompatibility=”1.7“”添加到分级文件。 谁能建议一下如何解决这个问题。

  • 因此,在升级build.gradle(project)后运行项目时,我收到以下错误 至

  • 自从我将android studio从2.0更新为2.1以来,我遇到了以下错误。 错误:将字节码转换为索引时出错: 原因:Dex无法解析52字节版本的代码。这是由使用Java8或更高版本编译的库依赖项引起的。如果您在库子模块中使用“java”gradle插件,请将目标兼容性=“1.7”源兼容性=“1.7”添加到该子模块的build.gradle文件中。 我尝试在build.gradle中添加以下片

  • 我刚切换到Android Studio 2.1,在尝试编译之前运行的应用程序时出现了以下错误: 我已经更新了主项目的gradle。生成文件以强制生成Java 1.7代码: 我还更新了gradle模块。按如下方式构建以设置java版本: 正在使用Maven构建子模块。在pom.xml文件中,我还尝试强制生成1.7代码。 我知道我正在使用一个组装工件,它包含了从属模块,但我没有更改任何从属模块,并且上