Google Play服务更新后Nearby.CONNECTIONS_API不可用及相关异常求助
Google Play服务更新后,设备上的Nearby.CONNECTIONS_API不可用。应用此前运行正常,未对Firebase或Google云平台做任何改动,涉及测试设备包括Google Pixel 6、OnePlus 9、Samsung J7。
报错信息
启动发现失败
com.google.android.gms.common.api.ApiException: 17: API: Nearby.CONNECTIONS_API is not available on this device. Connection failed with: ConnectionResult{statusCode=INTERNAL_ERROR, resolution=null, message=null} at com.google.android.gms.common.api.internal.zad.zad(com.google.android.gms:play-services-base@@18.1.0:1) at com.google.android.gms.common.api.internal.zabq.zaE(com.google.android.gms:play-services-base@@18.1.0:7) at com.google.android.gms.common.api.internal.zabq.zaD(com.google.android.gms:play-services-base@@18.1.0:2) at com.google.android.gms.common.api.internal.zabq.zar(com.google.android.gms:play-services-base@@18.1.0:24) at com.google.android.gms.common.api.internal.zabq.onConnectionFailed(com.google.android.gms:play-services-base@@18.1.0:1) at com.google.android.gms.common.internal.zai.onConnectionFailed(com.google.android.gms:play-services-base@@18.1.0:1) at com.google.android.gms.common.internal.zzf.zzb(com.google.android.gms:play-services-basement@@18.1.0:2) at com.google.android.gms.common.internal.zza.zza(com.google.android.gms:play-services-basement@@18.1.0:3) at com.google.android.gms.common.internal.zzc.zze(com.google.android.gms:play-services-basement@@18.1.0:3) at com.google.android.gms.common.internal.zzb.handleMessage(com.google.android.gms:play-services-basement@@18.1.0:31) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:240) at android.os.Looper.loop(Looper.java:351) at android.os.HandlerThread.run(HandlerThread.java:67)
IGmsServiceBroker.getService 调用失败
java.lang.IllegalStateException at android.os.Parcel.createExceptionOrNull(Parcel.java:3048) at android.os.Parcel.createException(Parcel.java:3024) at android.os.Parcel.readException(Parcel.java:3007) at android.os.Parcel.readException(Parcel.java:2949) at com.google.android.gms.common.internal.zzac.getService(com.google.android.gms:play-services-basement@@18.1.0:9) at com.google.android.gms.common.internal.BaseGmsClient.getRemoteService(com.google.android.gms:play-services-basement@@18.1.0:14) at com.google.android.gms.common.api.internal.zabt.run(com.google.android.gms:play-services-base@@18.1.0:7) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:240) at android.os.Looper.loop(Looper.java:351) at android.os.HandlerThread.run(HandlerThread.java:67)
清除Google Play服务缓存与数据
进入设备设置 → 应用 → Google Play服务 → 存储 → 清除缓存,再尝试清除数据(清除数据后需重新登录Google账号),完成后重启设备。回滚Google Play服务版本
- 进入设备设置 → 应用 → Google Play服务 → 卸载更新(部分设备需先开启“未知来源应用”权限或在开发者选项中允许降级);
- 安装此前备份的旧版本APK,或下载对应设备架构的稳定旧版本。
检查应用权限配置
确认应用已获取必要权限:ACCESS_FINE_LOCATION、BLUETOOTH、BLUETOOTH_ADMIN,Android 12及以上还需BLUETOOTH_SCAN、BLUETOOTH_ADVERTISE、BLUETOOTH_CONNECT。可在应用设置中手动开启,或检查代码中的权限申请逻辑。同步Play服务依赖版本
检查项目中com.google.android.gms:play-services-nearby等相关依赖的版本,确保与设备上的Google Play服务版本兼容,尝试更新到最新稳定版,或适配当前设备的服务版本。重置应用偏好与服务框架
进入设备设置 → 系统 → 重置选项 → 重置应用偏好设置(不会删除应用数据);部分设备可在开发者选项中找到“重置Google Play服务”功能,执行重置操作。验证区域与账号状态
确认设备当前区域支持Nearby Connections服务,且Google账号登录正常、无限制,可尝试切换其他Google账号测试。
内容的提问来源于stack exchange,提问作者Ammar Abdullah

