使用SBT和Android插件从AndroidManifest.xml获取包名称



我正在中使用SBT并修改Jan Berkel的Android插件,我需要有关我试图构建的Android项目的包名称的信息。

我知道包名称位于AndroidManifest.xml中,但我想知道是否有任何方法可以使用SBT来获取该包名称?

不太确定这是否是您所需要的,但无论如何。Sbt任务是用scala代码编写的,所以我们可以找到那个文件,然后读取内容:

import java.io.File
import java.io.FileNotFoundException
def recursiveListFiles(f: File): Array[File] = {
  val these = f.listFiles
  if(these != null) 
    these ++ these.filter(_.isDirectory).flatMap(recursiveListFiles) 
  else Array[File]()
}
val projectFiles = recursiveListFiles(new File("."))
val manifestFile = projectFiles
  .filter(f => f.getCanonicalPath.endsWith("AndroidManifest.xml"))
  .toList.headOption
  .getOrElse(
    throw new FileNotFoundException("Your project doesn't contain manifest")
  )
val manifestXML = scala.xml.XML.loadFile(manifestFile)
val pkg = manifestXML.attribute("package").getOrElse("")

相关内容

  • 没有找到相关文章

最新更新