作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有几个不同的 Gradle 构建类型,我正在尝试为每个构建类型单独指定 Google C2D_MESSAGE 权限名称,因为我无法在手机上安装不同的应用程序,因为它们共享一个权限名称。但是我遇到了“缺少名称属性”错误。
所以我在我的 build.gradle 中做这样的事情:
buildType2 {
applicationIdSuffix '.suffix1'
...
resValue 'string', 'gcmPermission', "com.mypackage.suffix1.permission.C2D_MESSAGE"
}
在我的 AndroidManifest.xml 中:
<permission
android:name="@string/gcmPermission"
android:protectionLevel="signature" />
<uses-permission android:name="@string/gcmPermission" />
然而,我在构建时遇到了以下错误:
AndroidManifest.xml:19: missing name attribute in element <permission>.
最佳答案
我通过用一个占位符替换 permission- 和 uses-permission 元素中的 package-name 来解决这个问题,该占位符会自动被 gradle 替换为 buildtypes 和/或 productFlavors:
<permission
android:name="${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature"/>
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE"/>
关于android - 将权限名称指定为 resValue 时出现 "Missing name attribute"错误。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29306904/
我是一名优秀的程序员,十分优秀!