1

我正在用 Scala 开发一个类似于 Hello World 的 Android 应用程序。

我遵循了 SBT-Android 文档中的入门教程,并尝试应用Scala on Android书中的建议。一个从头开始做所有事情,另一个做g8 Geal/android-app

然而,在这两种情况下,我都面临同样的错误:

[warn]  module not found: org.scala-sbt#sbt-android;0.7.1-SNAPSHOT
[warn] ==== typesafe-ivy-releases: tried
[warn]   http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-android/scala_2.10/sbt_0.13/0.7.1-SNAPSHOT/ivys/ivy.xml
[warn] ==== sbt-plugin-releases: tried
[warn]   http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/org.scala-sbt/sbt-android/scala_2.10/sbt_0.13/0.7.1-SNAPSHOT/ivys/ivy.xml
[warn] ==== local: tried
[warn]   /Users/jcarres/.ivy2/local/org.scala-sbt/sbt-android/scala_2.10/sbt_0.13/0.7.1-SNAPSHOT/ivys/ivy.xml
[warn] ==== sbt-releases-repo: tried
[warn]   http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-android/scala_2.10/sbt_0.13/0.7.1-SNAPSHOT/ivys/ivy.xml
[warn] ==== sbt-plugins-repo: tried
[warn]   http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/org.scala-sbt/sbt-android/scala_2.10/sbt_0.13/0.7.1-SNAPSHOT/ivys/ivy.xml
[warn] ==== maven-central: tried
[warn]   http://repo1.maven.org/maven2/org/scala-sbt/sbt-android_2.10_0.13/0.7.1-SNAPSHOT/sbt-android-0.7.1-SNAPSHOT.pom
[warn] ==== scalasbt releases: tried
[warn]   http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/org.scala-sbt/sbt-android/scala_2.10/sbt_0.13/0.7.1-SNAPSHOT/ivys/ivy.xml
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.scala-sbt#sbt-android;0.7.1-SNAPSHOT: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::

我已经尝试了几个版本,sbt-android似乎问题是我的 Scala 和 sbt 版本不匹配。

当我访问http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/org.scala-sbt/sbt-android时,我只能看到scala_2.9.2目录,而我的 Scala 版本是2.10. 我的 sbt 版本0.13似乎应该是0.12.

我是否需要删除 Scala2.10并安装 Scala2.9.2和/或将 sbt 降级到0.12? 有解决办法吗?

4

1 回答 1

6

sbt使用它自己下载的 Scala 副本——它会自动下载“正确”的版本——所以你不需要弄乱你自己安装的 Scala 副本。

因为这是一个sbt插件,你需要将sbt版本更改为它期望的版本,在project/build.properties(如果这个文件不存在,你可以创建它,内容如下):

sbt.version=0.12.0

确保您reload使用 sbt,以便加载新(旧)版本的 sbt。

或者,当然,您可以尝试sbt-android-plugin从 sbt 的源代码进行编译0.13,方法是执行相反的操作(您可能需要构建和publish-local它的一些依赖项)。它可能会起作用。

于 2013-11-23T18:02:16.630 回答