前言:在Eclipse時代是沒有applicationId可言的蓬蝶,只有packageName,在Android Gradle構(gòu)建系統(tǒng)出現(xiàn)了applicationId
簡單區(qū)分:packageName在代碼內(nèi)使用;applicationId是程序唯一標(biāo)識符讼呢。
applicationId的引用
- 在AndroidManifest里面可以直接用占位符引用
android:authorities="${applicationId}.provider"
- 在res的xml不能用占位符方式引用(或者誰知道可以的分享一下方法)
- 在gradle引用:只能在各個級別里面引用鲜棠,不能跨界引用渔伯。
如:
defaultConfig {
applicationId "com.king.zen"
}
productFlavors {
//RX
polaris {
buildConfigField("String", "authority", "\"${applicationId}.provider\"")
}
這樣寫是錯誤的,build完畢以后BuildConfig.java會是這樣的:
public static final String authority = "null.provider";
正確寫法是:
defaultConfig {
applicationId "com.king.zen"
}
productFlavors {
//RX
polaris {
applicationId "com.king.zen.polaris"
buildConfigField("String", "authority", "\"${applicationId}.provider\"")
}
BuildConfig.java:
public static final String authority = "com.king.zen.polaris.provider";