我正在使用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
)
项目设置:
我收到此错误:
错误:java:javacTask:源发行版1.8需要目标发行版1.8
答案 0 :(得分:1)
Android支持java8,但是您的代码和依赖库不应调用MethodHandle.invoke
。参见https://developer.android.com/studio/write/java8-support。
标准scala库2.11、2.12、2.13.0-M5使用此方法,因此编译失败。