无法扩展以前版本的 Scala 编译的宏(scala 2.11.4、sbt 0.13.7、JDK 8) [英] Can't expand macros compiled by previous versions of Scala (scala 2.11.4, sbt 0.13.7, JDK 8)
本文介绍了无法扩展以前版本的 Scala 编译的宏(scala 2.11.4、sbt 0.13.7、JDK 8)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在将项目转换为 Scala 2.11.4 和 sbt 0.13.7.我有很多错误,其中一些是:
I'm converting a project to Scala 2.11.4 and sbt 0.13.7. I got a lot of errors, some of them are:
can't expand macros compiled by previous versions of Scala
[error] preloadDevice <<= preloadDeviceTask
对于此代码:
lazy val settings: Seq[Setting[_]] = inConfig(Android) (Seq(
// Preload Scala on the device/emulator
preloadDevice <<= preloadDeviceTask,
preloadEmulator <<= InputTask(
(sdkPath)(AndroidProject.installedAvds(_)))(preloadEmulatorTask),
// Uninstall previously preloaded Scala
unloadDevice <<= unloadDeviceTask,
unloadEmulator <<= InputTask(
(sdkPath)(AndroidProject.installedAvds(_)))(unloadEmulatorTask)
))
我该如何解决?
更新:
JDK 8
推荐答案
来自这里:为什么 Def.inputTask 宏在 Scala 2.11.1 中不起作用?
在你的 build.sbt 文件中,确保你使用的是 scalaVersion := "2.10.4"像 scalaVersion :="2.11.x"
In your build.sbt file, make sure you scalaVersion := "2.10.4" instead of something like scalaVersion := "2.11.x"
如果您使用 JDK 8,那么 Sbt 0.13.x 针对 Scala 2.10.x 编译的选项并不多:
If you use JDK 8, there is not too much options as Sbt 0.13.x compiled against Scala 2.10.x:
- 仅将 JDK7 用于 sbt(通过在运行脚本中为 sbt 设置特定的 JAVA_HOME) - 您的项目仍将针对 JDK8 进行编译
- 为 sbt 尝试 JDK8 + Scala-2.10(它可能有效,但当然不能保证)
- 针对 JDK8 构建 sbt 0.13 自己
这篇关于无法扩展以前版本的 Scala 编译的宏(scala 2.11.4、sbt 0.13.7、JDK 8)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文