You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GoogleMap Compose结合MVVM时出现SecurityException的定位问题

Google Maps Compose定位追踪异常问题排查

我正在开发一款采用MVVM架构的Android应用,使用GoogleMap Compose组件实现定位追踪时,出现以下异常:

2022-10-02 18:43:48.734 31711-31750/com.park.reserved W/MobStoreFlagStore: Unable to update local snapshot for com.google.android.libraries.consentverifier#com.park.reserved, may result in stale flags.
    java.util.concurrent.ExecutionException: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=com.park.reserved, sha256=[462925ab37c5ec4ab8550323438372023f34e9897a556848dd8c35d18c4e71c6], atk=false, ver=223616044.true (go/gsrlt)
        at ahn.s(:com.google.android.gms.dynamite_mapsdynamite@223616044@22.36.16 (190400-0):3)
        at ahn.get(:com.google.android.gms.dynamite_mapsdynamite@223616044@22.36.16 (190400-0):2)
        at aix.g(:com.google.android.gms.dynamite_mapsdynamite@223616044@22.36.16 (190400-0):2)
        at xq.d(:com.google.android.gms.dynamite_mapsdynamite@223616044@22.36.16 (190400-0):1)
        at xs.run(:com.google.android.gms.dynamite_mapsdynamite@223616044@22.36.16 (190400-0):0)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:463)
        at java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
        at java.lang.Thread.run(Thread.java:1012)
     Caused by: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=com.park.reserved, sha256=[462925ab37c5ec4ab8550323438372023f34e9897a556848dd8c35d18c4e71c6], atk=false, ver=223616044.true (go/gsrlt)
        at android.os.Parcel.createExceptionOrNull(Parcel.java:2426)
        at android.os.Parcel.createException(Parcel.java:2410)
        at android.os.Parcel.readException(Parcel.java:2393)
        at android.os.Parcel.readException(Parcel.java:2335)
        at em.c(:com.google.android.gms.dynamite_mapsdynamite@223616044@22.36.16 (190400-0):2)
        at rc.a(:com.google.android.gms.dynamite_mapsdynamite@223616044@22.36.16 (190400-0):4)
        at it.e(:com.google.android.gms.dynamite_mapsdynamite@223616044@22.36.16 (190400-0):2)
        at js.t(:com.google.android.gms.dynamite_mapsdynamite@223616044@22.36.16 (190400-0):2)
        at js.u(:com.google.android.gms.dynamite_mapsdynamite@223616044@22.36.16 (190400-0):3)
        at js.e(:com.google.android.gms.dynamite_mapsdynamite@223616044@22.36.16 (190400-0):2)
        at jw.handleMessage(:com.google.android.gms.dynamite_mapsdynamite@223616044@22.36.16 (190400-0):69)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loopOnce(Looper.java:201)
        at android.os.Looper.loop(Looper.java:288)
        at android.os.HandlerThread.run(HandlerThread.java:67)

应用仍可正常运行,但GoogleMap Compose的定位追踪功能异常:能成功获取手机位置,但在地图上显示该位置时会抛出上述异常。

Gradle依赖配置

implementation "com.google.maps.android:maps-compose:2.7.2"
implementation "com.google.android.gms:play-services-maps:18.1.0"

我参考过相关帖子,但遇到的报错信息和现有问题不同。

异常触发场景

以下两种方式会触发上述异常:

  • 将ViewModel作为FindParking Composable的默认参数
@Composable
fun FindParking(findParkingViewModel: FindParkingViewModel = hiltViewModel()) {
    . . .
}
  • 在NavHost的Composable函数内部创建ViewModel
NavHost(
        navController = navController,
        startDestination = TopLevelDestination.Parking.route,
        modifier = modifier
    ) {
        composable(route = TopLevelDestination.Parking.route) {
            // ---> 在这里创建会触发异常
            val findParkingViewModel: FindParkingViewModel = hiltViewModel()
            FindParking(findParkingViewModel)
        }
 }

当前临时解决方案

目前仅能通过在NavHost外部创建FindParkingViewModel来让定位功能正常工作,但Logcat仍会抛出该异常。应用相关代码结构包含SharedLocationManager、LocationRepository、FindParkingViewModel、FindParking Composable以及MapAppNavHost。

内容的提问来源于stack exchange,提问作者leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 00:50:29