Gradle和Android:从Android Library Project获取包ID

时间:2015-05-25 17:46:26

标签: android android-studio gradle

我有一个使用Android Studio创建的Android项目,它使用Gradle构建系统。

我在这个Android项目中有几个模块(子项目),其中一些是Android库项目(AAR)。

我需要做的是获取包ID(基本上是唯一标识Android应用程序或库的值,可以在" package"属性中的AndroidManifest.xml文件中找到的值)这些来自Gradle的AAR项目。

现在,如果该项目是一个Android 应用程序,那将是微不足道的:" android.defaultConfig.applicationId" property已包含包ID。

但是对于Android 项目,此值不可用。 现在,我知道我可以在技术上只使用(非常灵活)groovy XML解析器直接从AndroidManifest.xml文件中读取值,但我想知道是否有更直接有效的方法来实现它,就像有Android应用。

1 个答案:

答案 0 :(得分:0)

好吧,既然我没有找到更直接的解决方案,这就是我最后用纯Gradle代码做到的:

File pluginManifestFile = file(project.absolutePath + "/src/main/AndroidManifest.xml")
    if(pluginManifestFile.exists()){
        String manifestContents = pluginManifestFile.text
        def pluginManifestXml = new XmlSlurper().parseText(manifestContents)
        String packageName = pluginManifestXml.@package.toString()
        println 'Package name of the library is: ' + packageName
    }