前言:在Eclipse时代是没有applicationId可言的,只有packageName,在Android Gradle构建系统出现了applicationId
简单区分:packageName在代码内使用;applicationId是程序唯一标识符。
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";
网友评论