我在提交de0b517处检查了sbt-android 项目源,然后尝试在示例项目中运行该任务。我收到这些错误: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"
谢谢!