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

时间:2019-03-18 12:06:53

标签: java android scala sbt cross-platform

我正在使用intellij创建具有以下平台JVM,JS,NativeWin,NativeUbuntu,Android和Shared scala代码的sbt交叉编译平台项目。我的项目中需要Java 8,而android似乎无法使用Java 8版本,由于我在android模块的sbt文件中指定了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
  ) 

项目设置:

enter image description here

我收到此错误:

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

1 个答案:

答案 0 :(得分:1)

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