无法扩展以前版本的 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)

查看:66
本文介绍了无法扩展以前版本的 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆