2015-05-25 38 views
1

我有一個使用Gradle構建系統的Android Studio創建的Android項目。Gradle和Android:從Android庫項目獲取包ID

我在這個Android項目中有幾個模塊(子項目),其中一些是Android庫項目(AAR)。

我需要做的是從這些AAR項目獲取Package ID(基本上是唯一標識Android應用程序或庫的值,可以在「package」屬性的AndroidManifest.xml文件中找到的值)搖籃。

現在,如果該項目是一個Android應用程序將是微不足道了:「android.defaultConfig.applicationId」屬性已經包含包ID。

但是對於Android 項目此值不可用。 現在,我知道我可以在技術上只使用(非常靈活)groovy XML解析器直接從AndroidManifest.xml文件中讀取值,但我想知道是否有一個更直接,更高效的方法來做到這一點,爲Android應用程序。

回答

0

好吧,因爲我沒有找到一個更直接的解決方案,這一點,這裏就是我跟到底純搖籃代碼做到了:

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