【问题标题】:Android Gradle Plugin 4.1.0 grants Location permission automaticallyAndroid Gradle Plugin 4.1.0 自动授予位置权限
【发布时间】: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 权限存在同样的问题

标签: android gradle android-permissions


【解决方案1】:

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

【讨论】:

  • 是的,但没有解释发生了什么变化
猜你喜欢
  • 2022-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-08
  • 1970-01-01
相关资源
最近更新 更多