Android Gradle Plugin 4.1.0 自动授予位置权限

Posted

技术标签:

【中文标题】Android Gradle Plugin 4.1.0 自动授予位置权限【英文标题】:Android Gradle Plugin 4.1.0 grants Location permission automatically 【发布时间】:2021-02-14 05:12:04 【问题描述】:

在 Manifest 中声明位置权限的构建应用程序会在安装时使用最新的 AGP 4.1.0 获得默认授予的权限!!!

复制步骤:

android studio中签出和导入https://github.com/avianey/Android30LocationRational 连接在 sdk 29 或 30 下运行的设备或模拟器 从 gradle 任务面板运行 uninstallAll 任务,以确保从设备上卸载应用程序 从 gradle 任务面板运行 installRelease 任务 在设备上打开应用 ACCESS_FINE_LOCATIONACCESS_BACKGROUND_LOCATION 默认授予!

预期行为:

安装时未授予权限

注意事项:

恢复到类路径“com.android.tools.build:gradle:4.0.2”修复问题 使用 compileSdkVersion/targetSdkVersion 29 或 30 没有任何改变 当使用来自 android studio 的默认安装配置安装应用程序时,问题不存在(默认情况下未授予权限)查看屏幕截图(红色是 bugguy,绿色不是并且行为符合预期)

因此,在应用商店提交审核的捆绑应用存在问题,并且没有通过位置权限的合规测试,原因是在请求权限之前应该显示一个对话框...在 AGP 上找不到任何线索更新日志页面:https://developer.android.com/studio/releases/gradle-plugin

有避免使用旧的构建工具的想法吗?

【问题讨论】:

有兴趣的可以在这里查看状态:issuetracker.google.com/issues/172112073 使用 assembleRelease 并手动安装 .apk 行为是正确的,没有授予权限。如果从终端启动 ./gradlew installRelease(或 instalDebug)会发生什么? 我注意到RECORD_AUDIO 权限存在同样的问题 【参考方案1】:

当您assembleRelease 并手动安装 APK 时,行为正确:未授予权限。尝试从终端启动 ./gradlew installReleaseinstallDebug

【讨论】:

是的,但没有解释发生了什么变化

以上是关于Android Gradle Plugin 4.1.0 自动授予位置权限的主要内容,如果未能解决你的问题,请参考以下文章

androidsutido gradle plugin升级到指定版本

gradle/gradle plugin/Android studio关系

Gradle之Android Gradle Plugin 主要 Task 分析

Android Studio Gradle Plugin开发入门指南

Android Studio Gradle Plugin开发入门指南

在Android Studio中将Gradle从3.3升级到4.1后出错