Ошибка: java: javacTask: исходный выпуск 1.8 требует целевой выпуск 1.8 - PullRequest
1 голос
/ 18 марта 2019

Я использую intellij для создания проекта кросс-компиляции sbt со следующими платформами: JVM, JS, NativeWin, NativeUbuntu, Android и Shared scala. Мне нужен java 8 в моем проекте, и кажется, что android не работает сВерсия Java 8, в связи с тем, что я указал версию 1.7 в файле sbt для модуля Android следующим образом:

Модуль 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 Ответ

1 голос
/ 26 марта 2019

Android поддерживает java8, но ваши библиотеки кода и зависимостей не должны вызывать MethodHandle.invoke.См. https://developer.android.com/studio/write/java8-support.Стандартные библиотеки scala 2.11, 2.12, 2.13.0-M5 используют этот метод, поэтому компиляция не удалась.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...