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

Mat*_*att 11 android gradle

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

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

Cat*_*ata 21

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

声明清单的标题如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
Run Code Online (Sandbox Code Playgroud)

你还必须像这样添加你的标签:

<uses-permission android:name="android.permission.INTERNET" tools:node="remove" />
Run Code Online (Sandbox Code Playgroud)

我希望这有助于其他人.

资料来源:HERE

还有Android文档:HERE

编辑:

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


Fee*_*ood 11

根据文档,你可以:

  1. 通过向您的清单添加此类内容来删除权限 <permission android:name="permissionOne" tools:node="remove"/>

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