【问题标题】:Build errors when switching from buildToolsVersion '24.0.2' to anything higher从 buildToolsVersion '24.0.2' 切换到更高版本时的构建错误
【发布时间】:2016-11-16 19:34:42
【问题描述】:

切换到 buildToolsVersion 24.0.3 或更高版本时构建失败 与默认方法和静态方法有关的错误消息“在低于 24 的 Android API 级别中不受支持”

在以前版本的 Build Tools 中运行良好,最高 24.0.2 我正在使用 Jack 和 Google 播放服务。 但是,抱怨是关于 java.util 和 java.lang 中的代码例如:

错误:SortedSet.java:36-37:低于 24.0.2 的 Android API 级别不支持默认方法 java.util.Spliterator spliterator()

错误:Stream.java:68-69:低于 24 的 Android API 级别不支持静态方法 java.util.stream.Stream$Builder builder()

minSdkVersion 17 targetSdkVersion 24

【问题讨论】:

  • 听起来您正在使用 java 8 功能,请检查您的 java 版本
  • @DavidMedenjak。谢谢。是的,我确实使用了一些 Java 8 功能,例如 lambda,但这一切都适用于 24.0.2 及以下版本的构建工具。

标签: java android android-gradle-plugin build-tools android-jack-and-jill


【解决方案1】:

我将我的 android studio 切换为使用打包的 java 8 版本。

当我切换到 java 8 时,我已将启用的 jack 和版本添加到 8,但这破坏了发布版本的一切。

然后我将它从 true 切换为 false。

jackOptions {
                enabled false
            }

然后我将其从 8 设置为 7。

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

我猜只要您的代码和项目中包含的库适用于 java 7,您的代码就应该为发布而构建。

如果这不起作用并且您必须使用这些 java 函数,那么您似乎需要将您的最低版本提高到 24。

【讨论】:

  • 我不能这样做的问题,因为我在我的代码中使用需要 java8 的实验室
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-03
  • 2017-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-04
相关资源
最近更新 更多