Указание расположения AndroidManifest.xml в проекте Java, скомпилированном с помощью sbt android-plugin - PullRequest
2 голосов
/ 18 октября 2011

Я пытаюсь использовать sbt для компиляции проекта Android, созданного на Java, который я только что унаследовал и хочу улучшить с помощью Scala.

Проект разбит на несколько модулей. Я создал проект sbt с "g8 jberkel/android-app -b sbt-0_11", скопировал все модули в src / оставив меня с:

my-android-project  ls -l src 
total 96
drwxr-xr-x  14 tiagoboldt  staff    476 Oct 18 16:09 AndroidApplication
drwxr-xr-x   8 tiagoboldt  staff    272 Oct 18 16:09 CRCCalculatioNTool
drwxr-xr-x  10 tiagoboldt  staff    340 Oct 18 16:09 CaretakerIntegration
drwxr-xr-x  13 tiagoboldt  staff    442 Oct 18 16:09 ConsoleSensorNetwork
... and so on

Эти модули имеют зависимости между ними, AndroidApplication - главное приложение, которое я хочу построить. Я пытался отредактировать свой проект / build.scala, который я изменил из оригинала, чтобы включить следующее:

object AndroidBuild extends Build {
  lazy val AndroidApplication = Project (
    "AndroidApplication",
    file("."),
    settings = General.fullAndroidSettings ++ PlainJavaProject.settings
  ) 
}

Пытаясь построить, я всегда получаю:

java.io.FileNotFoundException: (rest_of_dir)/my-android-project/src/main/AndroidManifest.xml (No such file or directory)

Я не могу понять, как настроить его так, чтобы он искал этот файл в src / AndroidApplication / src / AndroidManifest.xml вместо файла по умолчанию. Уже пытался поиграть со значением файла и не зайти: \

Документация как sbt, так и его плагина для Android не помогла. Любая помощь будет оценена.

Ответы [ 3 ]

0 голосов
/ 06 ноября 2011

в случае, если вы пытаетесь настроить плагин для изменения путей по умолчанию, тогда я думаю, вам также нужно настроить параметр manifestTemplatePath:

settings = General.fullAndroidSettings ++ inConfig(Android)(Seq(
  manifestPath <<= (baseDirectory, manifestName in Android) (_ / _),
  manifestTemplatePath <<= (manifestPath in Android) (mp => mp),
  mainAssetsPath <<= baseDirectory (_ / "assets"),
  mainResPath <<= baseDirectory (_ / "res")
))

Удалить manifestTemplatePath, и вы получитеошибка, которую вы видите.

0 голосов
/ 03 июля 2012

Наряду с libgdx, я просто использовал это:

lazy val android = 
  Settings.common ++
  AndroidProject.androidSettings ++
  TypedResources.settings ++
  proguardSettings ++
  AndroidManifestGenerator.settings ++
  AndroidMarketPublish.settings ++
  Seq (
    platformName in Android := "android-7",
    keyalias in Android := "change-me",
    mainAssetsPath in Android := file("common/src/main/resources"),
    manifestPath in Android := Seq(file("android/src/main/AndroidManifest.xml"))
  )
0 голосов
/ 19 октября 2011

Надеюсь, это поможет:

object AndroidBuild extends Build {
  val AndroidApplication = Project (
  "AndroidApplication",
  file("AndroidApplication"),
   settings = General.fullAndroidSettings ++ PlainJavaProject.settings
  ) dependsOn xxxxx 

  lazy val CRCCalculatioNTool = Project (
  "CRCCalculatioNTool",
  file("CRCCalculatioNTool"),
  settings = General.fullAndroidSettings ++ PlainJavaProject.settings
  ) dependsOn yyy

  lazy val CaretakerIntegration = Project (
  "CaretakerIntegration",
  file("CaretakerIntegration"),
   settings = General.fullAndroidSettings ++ PlainJavaProject.settings
  ) dependsOn zzz
}
...