sbt android因为libraryProject错误而无法在示例项目multiproject-same-dependencies上运行android:package

时间:2016-05-07 13:33:15

标签: scala sbt sbt-android

我已在提交sbt-android project source检出de0b517,然后尝试在示例项目android:package中运行multiproject-same-dependencies任务。我收到这些错误:

[error] (b/android:apkbuild) This project cannot build APK, it has set 'libraryProject in Android := true'
[error] (c/android:apkbuild) This project cannot build APK, it has set 'libraryProject in Android := true'
[error] (d/android:apkbuild) This project cannot build APK, it has set 'libraryProject in Android := true'

我一直在关注这个项目的布局,尝试用两个子模块构建我自己的android项目,并在那里遇到同样的错误。一个子模块本身就是一个android库(我得到了一个错误),另一个只是一些没有android依赖的java源代码。

我不知道这是否相关,但在我的系统上,示例项目并没有开箱即用。我做了这些改变:

  • 添加project/build.properties设置sbt.version=0.13.9
  • 添加project/plugins.sbt设置addSbtPlugin("org.scala-android" % "sbt-android" % "1.6.1")

我意识到可以通过在~/.sbt中使用全局安装来避免这些更改,但我正在尝试模拟我的实际项目设置,这些设置明确导入这些设置以使其更加独立通过最小化环境依赖性来实现便携性。

如果有帮助,这是我个人项目的build.sbt

val androidSettings = Seq(platformTarget := "android-15", dexMulti := true)

javacOptions in Compile ++= Seq("-source", "1.7", "-target", "1.7")

lazy val actionbarsherlock =
  project
    .settings(exportJars := true)
    .settings(androidBuildAar)
    .settings(androidSettings: _*)

lazy val util =
  project
    .settings(exportJars := true)

lazy val androminion =
  project
    .dependsOn(util)
    .androidBuildWith(actionbarsherlock)
    .settings(androidSettings: _*)
    .settings(exportJars := true)

libraryDependencies in actionbarsherlock ++= Seq(
  "com.android.support" % "support-v4" % "18.0.0"
)

这是定义一个依赖于另一个Android项目和一个非android项目的android项目的惯用方法吗?

关于我的java安装:

$ java -version
java version "1.7.0_60"

谢谢!

1 个答案:

答案 0 :(得分:0)

你会跑

androminion/android:package