如何在使用Gradle构建Android应用程序时删除特定权限?

56

最近,谷歌将Google服务的权限自动合并到最终发布的APK中。有人在这里问:为什么在包含Google Play服务库时会自动添加权限到我的AndroidManifest中

我的问题是一些权限不需要,而且我不希望在我的应用程序中使用某些敏感权限。那么如何删除像 android.permission.ACCESS_COARSE_LOCATION 这样的权限? 使用gradle build,我不想禁用清单合并器。我在某个地方读到可以配置合并器从外部库中删除权限,但是我找不到如何做到这一点。

1个回答

140

在你的清单文件中添加属性tools:node,值为remove

<manifest ... xmlns:tools="http://schemas.android.com/tools">
    ...
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove" />
    ...
</manifest>

请参考https://developer.android.com/studio/build/manage-manifests#node_markers
不要忘记将tools命名空间添加到您的清单文件的根元素中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接