如何使用gradle构建Android应用时删除特定权限?

时间:2015-07-24 17:22:34

标签: java android gradle permissions

最近Google自动将Google服务合并到最终版本apk。 有人问这里Why are permissions being automatically added to my AndroidManifest when including Google Play Services library

我的问题是一些不需要的权限,我不想在我的应用中获得一些敏感权限。那么如何删除 android.permission.ACCESS_COARSE_LOCATION 等权限? 使用gradle构建,我不想禁用Manifest Merger。我读了一些可以配置Merger以从外部lib中删除权限的地方,但是我找不到如何去做。

1 个答案:

答案 0 :(得分:61)

向您的清单添加值tools:node的属性remove

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

请参阅http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-tools:node-markers

不要忘记将tools命名空间添加到清单的根元素中。