错误:java:javacTask:源版本 1.8 需要目标版本 1.8

Posted

技术标签:

【中文标题】错误:java:javacTask:源版本 1.8 需要目标版本 1.8【英文标题】:Error:java: javacTask: source release 1.8 requires target release 1.8 【发布时间】:2019-08-08 19:11:07 【问题描述】:

我正在使用 intellij 创建具有以下平台 JVM、JS、NativeWin、NativeUbuntu、android 和共享 scala 代码的 sbt 交叉编译平台项目。我的项目中需要 java 8,似乎 android 无法使用java 8 版本,由于我在 sbt 文件中为 android 模块指定了 1.7 版本,如下所示:

Android模块build.sbt文件

val commonSettings = Seq(
  version        := "0.0.1",
  scalaVersion   := "2.11.12",
  scalacOptions ++= Seq("-unchecked", "-deprecation", "-feature", "-target:jvm-1.7"),
  javacOptions  ++= Seq("-source", "1.7", "-target", "1.7"),
  exportJars     := true
)

lazy val android = (project in file("."))
  .enablePlugins(AndroidLib)
  .settings(commonSettings: _*)
  .settings(
    name := "sgl-android",
    platformTarget := "android-28",
    useProguard := true
  ) 

项目设置:

我收到了这个错误:

【问题讨论】:

【参考方案1】:

Android 支持 java8,但您的代码和依赖库不应调用 MethodHandle.invoke。见https://developer.android.com/studio/write/java8-support。 标准 scala 库 2.11、2.12、2.13.0-M5 使用此方法,因此编译不成功。

【讨论】:

在我为所有模块设置项目 sdk 后它可以工作了谢谢 :)

以上是关于错误:java:javacTask:源版本 1.8 需要目标版本 1.8的主要内容,如果未能解决你的问题,请参考以下文章

[java问题记录]IntelliJ Idea编译报错:javacTask: 源发行版 1.8 需要目标发行版 1.8

Information:java: javacTask: 源发行版 8 需要目标发行版 1.8

IDEA编译时出现 Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8

Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8

Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8

Idea maven编译报错 javacTask: 源发行版 1.8 需要目标发行版 1.8