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

使用play-services-location:12.0.0设置定位更新遇构造器内部访问错误

解决LocationRequest构造器标记为internal的问题

嘿,这个坑我之前踩过!在com.google.android.gms:play-services-location:12.0.0版本里,Google确实把LocationRequest的构造器设为internal权限了,不让咱们直接通过new LocationRequest()来创建实例——这也是你看到报错的原因。

正确的解决方法

你需要改用LocationRequest提供的静态工厂方法create()来创建实例,之后再链式调用那些配置方法。修改后的代码应该是这样的:

locationClient.requestLocationUpdates(
    LocationRequest.create()
        .setInterval(5000)
        .setFastestInterval(1000)
        .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY),
    locationCallback,
    null
);

为什么会有这个变化?

Google这么做是为了标准化LocationRequest的创建流程,后续版本他们可能会在工厂方法里添加更多内部初始化逻辑,直接用构造器的话可能会错过这些优化,甚至在更高版本里完全失效。所以官方推荐始终用create()方法来生成实例。

如果之后你升级到更高版本的location库,这个用法依然适用,不用再改回去啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:35:17