当前位置: 首页 > 面试题库 >

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

羊舌志
2023-03-14
问题内容

最近,Google自动合并了Google服务对最终版本apk的许可。有人问这里,为什么包括Google
Play服务库时权限会自动添加到我的AndroidManifest中

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


问题答案:

向清单中添加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名称空间添加到清单的根元素。



 类似资料:
  • 问题内容: 我正在尝试使用Gradle命令行界面构建我的Android应用。我还将 GRADLE_HOME / bin 添加到环境中。首先,我使用gradle init生成了包装,gradlew在我的项目文件夹中。现在,当我使用此包装程序构建我的应用程序( ./gradlew build )或使用其任何功能时,它尝试下载gradle-2.3.zip文件并失败(以下错误消息)。我不明白的是为什么gr

  • 问题内容: 我正在尝试从Eclipse迁移项目,但是没有尝试过。在Eclipse中,我有3个项目(2个android应用程序项目和1个android库项目)。2个应用程序项目取决于库项目。当我执行gradle导出时,我得到3个无效的项目。我愿意对项目进行重组,但没有找到有关如何完成此工作的任何文档。 有没有办法使Eclipse导出的3个项目一起工作?我最好重新组织一下工作,如果可以的话,是否应该提

  • 我已经将整个项目上传到了GitHub https://GitHub.com/respectthecode/android-studio-library-example 更新1 根据帕德玛·库马尔的建议,这就是我所尝试的。 null 在构建之后,我得到了这个错误 添加依赖项似乎不会对错误产生任何影响。从上面继续 单击 切换到选项卡 单击并选择 单击和 单击 根据伊森的建议,这就是我们得到的 2个子项

  • 我尝试使用gradle构建工具构建一个简单的android应用程序。但是我得到了这样的错误 方法无签名:org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile()适用于参数类型:(java.lang.String)值:[org.gradle.api.plugins: gradle and

  • 我正在设置我的第一个Ionic React应用程序。我使用Ionic 5创建了一个应用程序并使用了应用内购买2插件。 我想测试一下,所以我把签名的APK上传到Play商店。 当我查看Play Store上的应用程序包详细信息时,我发现它需要几个不必要的权限: 所需权限(13) Android准许ACCESS_Rough_LOCATION,android。准许访问android的FINE_位置。准许

  • 连接MySQL操作 mysql -h 主机地址 -u 用户名 -p 用户密码 注:-u与root可以不用加空格,其它参数也一样。 DEMO 打开电脑CMD,输入 mysql -h 127.0.0.1 -u root -p 回车,然后输入密码。就可以连接到本地的MySQL数据库。 创建MySQL用户 CREATE USER 'username'@'host' IDENTIFIED BY 'passw