【问题标题】:Error:java: javacTask: source release 1.8 requires target release 1.8错误:java:javacTask:源版本 1.8 需要目标版本 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
  ) 

项目设置:

我收到了这个错误:

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

【问题讨论】:

    标签: java android scala sbt cross-platform


    【解决方案1】:

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

    【讨论】:

    • 在我为所有模块设置项目 sdk 后它可以工作了谢谢 :)
    猜你喜欢
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 2015-12-19
    • 2017-04-02
    • 1970-01-01
    相关资源
    最近更新 更多