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_LOCATION 和 ACCESS_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 installRelease
或 installDebug
。
【讨论】:
是的,但没有解释发生了什么变化以上是关于Android Gradle Plugin 4.1.0 自动授予位置权限的主要内容,如果未能解决你的问题,请参考以下文章
androidsutido gradle plugin升级到指定版本
gradle/gradle plugin/Android studio关系
Gradle之Android Gradle Plugin 主要 Task 分析
Android Studio Gradle Plugin开发入门指南