如果您需要将变量插入到您的build.gradle文件中定义的AndroidManifest.xml文件中,则可以使用manifestPlaceholders属性。 此属性采用键值对的映射,如下所示:
android {
defaultConfig {
manifestPlaceholders = [hostName:"www.example.com"]
}
...
}
然后,您可以将一个占位符作为属性值插入到清单文件中,如下所示:
<intent-filter ... >
<data android:scheme="http" android:host="${hostName}" ... />
...
</intent-filter>
默认情况下,构建工具还会在${applicationId}
占位符中提供应用程序的application ID。 该值总是匹配当前构建的最终应用程序ID(包括构建变体的更改)。当您要为标识符(例如意图操作)使用唯一的命名空间时(甚至在构建变体之间),这是非常有用的。
例如,如果您的build.gradle
文件如下所示:
android {
defaultConfig {
applicationId "com.example.myapp"
}
productFlavors {
free {
applicationIdSuffix ".free"
}
pro {
applicationIdSuffix ".pro"
}
}
}
然后,您可以在清单中插入应用程序ID,如下所示:
<intent-filter ... >
<action android:name="${applicationId}.TRANSMOGRIFY" />
...
</intent-filter>
当你建立“free”产品类型的清单是这样的:
<intent-filter ... >
<action android:name="com.example.myapp.free.TRANSMOGRIFY" />
...
</intent-filter>
有关更多信息,请阅读设置Set the Application ID。