这个问题通常发生在连接 Google Play 帐户失败时或者连接超时。可以通过以下方式来解决:
确认手机或模拟器是否已连接到互联网,有时连接不稳定可能会导致该问题出现。
确认你的应用是在 Google Play 商店中发布的,并且你使用的是正确的签名证书。
检查你的 Google Play 服务版本是否最新,你可以通过以下方法检查:
int status = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(getApplicationContext());
if (status != ConnectionResult.SUCCESS) {
if (GoogleApiAvailability.getInstance().isUserResolvableError(status)) {
GoogleApiAvailability.getInstance().getErrorDialog(this, status, 2404).show();
}
}
如果当前版本不是最新版本,则需要更新 Google Play 服务。
尝试重启 BillingClient:
mBillingClient = BillingClient.newBuilder(this).setListener(this).build();
mBillingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(int responseCode) {
if (responseCode == BillingClient.BillingResponse.OK) {
// BillingClient 连接成功
}
}
@Override
public void onBillingServiceDisconnected() {
// BillingClient 连接失败
}
});
如果重启 BillingClient 还是出现 SERVICE_DISCONNECTED 错误,可以考虑更新 Google Play 服务或等待一段时间再进行连接。
最后,如果以上方法都不能解决问题,可以考虑重置 Google Play 商店应用程序缓存或数据,然后再尝试连接。