使用gradle产品风格删除AndroidManifest元素

时间:2014-03-13 22:46:05

标签: android gradle

我正在设置一个包含一些产品风格的Android gradle项目。除了我的一种口味之外,我想获得<uses-permission android:name="android.permission.INTERNET" />的许可。我知道可以有一个特定的风格添加一个权限,但是可以有一个风格删除吗?

我能想到的另一个解决方案是将<uses-permission android:name="android.permission.INTERNET" />权限添加到我的所有口味中,除了那个,这看起来很痛苦。

3 个答案:

答案 0 :(得分:21)

我知道这已经过时了,但现在有一个名为tools:node="remove"的新属性,可让您从Manifest中删除标记。

声明清单的标题如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

此外,你必须像这样添加你的标签:

<uses-permission android:name="android.permission.INTERNET" tools:node="remove" />

我希望这有助于其他人。

来源:HERE

Android文档:HERE

修改

编辑答案以匹配新的API更改。感谢Martin L.的评论

答案 1 :(得分:11)

根据docs,你可以:

  1. 通过向您的清单添加类似此项<permission android:name="permissionOne" tools:node="remove"/>

  2. 的删除权限
  3. 并为每个风格声明单独的AndroidManifest.xml部分 src/myFlavor/AndroidManifest.xml将合并此主AndroidManifest.xml

答案 2 :(得分:1)

gradle合并清单所以可能没有。我已经通过从主清单中删除标签并将其添加到所有特定风格中来解决类似问题(广播接收器包名称)。