【问题标题】:Android Studio 2.1 Error converting bytecode to dexAndroid Studio 2.1 将字节码转换为 dex 时出错
【发布时间】:2016-09-02 06:24:19
【问题描述】:

自从我将 android studio 从 2.0 更新到 2.1 后,我收到以下错误。

错误:将字节码转换为dex时出错:

原因:Dex 无法解析版本 52 字节码。这是由 使用 Java 8 或更高版本编译的库依赖项。如果 您正在库子模块中使用“java”gradle 插件添加 targetCompatibility = '1.7' sourceCompatibility = '1.7' 到那个 子模块的 build.gradle 文件。

我尝试在 build.gradle 中添加以下 sn-p,但问题仍然存在

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

我看到了一些与此类似的问题,但没有一个问题得到回答。谁能帮我解决这个问题?提前致谢。

【问题讨论】:

  • 您的项目中是否有任何仅限 java 的模块?
  • 没有。我没有使用任何这样的模块。我通过用旧的 SDK 替换 SDK 解决了这个问题。现在工作室工作正常。
  • 您更换了哪个SDK来解决这个问题,请您解释一下您是如何解决的。
  • @Adi 我用更新最新 SDK 之前的旧 SDK 替换。我有旧版 SDK 的副本。

标签: java android android-studio android-gradle-plugin


【解决方案1】:

试试

allprojects {
    tasks.withType(JavaCompile) {
        sourceCompatibility = "1.7"
        targetCompatibility = "1.7"
    }
}

在主build.gradle 文件中

【讨论】:

  • 为我节省了几个小时的痛苦。谢谢!
  • 工作得很好!谢谢。
  • 不适合我!!我正在尝试使用 itext 创建和加密一个 pdf 文件,我得到了同样的错误@sbeliakov
【解决方案2】:

从 build.gradle 中移除依赖,注释相关代码,然后编译和清理你的项目。

在成功清理后再次添加依赖项并取消注释您之前删除依赖项后评论的内容。

【讨论】:

    【解决方案3】:

    Android: Dex cannot parse version 52 byte code 的可能副本。引用最多的答案为我解决了这个问题。
    我将如下所示的 compileOptions 和 jackOptions 添加到我的 build.gradle 以使用 JDK 1.8。

    android {
        ...
        defaultConfig {
            ...        
            jackOptions {
                enabled true
            }
        }
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多