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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/31616334/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-02 18:52:21  来源:igfitidea点击:

How to remove specific permission when build Android app with gradle?

javaandroidgradlepermissions

提问by DzungPV

Recently Google auto merge permission from Google Service to final release apk. Some one ask here Why are permissions being automatically added to my AndroidManifest when including Google Play Services library

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

My problem is some permission don't need and I don't want some sensitive permission in my app. So how to remove permission like android.permission.ACCESS_COARSE_LOCATION? With gradle build, I don't want to disable Manifest Merger. I read some where that can config Merger to remove permission from external lib, but I can't find how to do it.

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

回答by Johan Stuyts

Add attribute tools:nodewith a value of removeto your manifest:

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

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

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

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

Don't forget to add the toolsnamespace to the root element of your manifest.

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