【发布时间】:2018-01-07 23:02:42
【问题描述】:
我已经创建了一个应用程序,但是当我尝试在我的 minsdk(API 21)上对其进行测试时,google play 服务将无法工作。
我得到的错误是com.google.android.gms.common.api.ApiException: 4:。
我关注了setup guide,这意味着我已将我的 Google Play 服务库设置为版本 11.8.0,它说我只需要使用 Android 4.2.2,即 API 17。
我的compileSdkVersion 设置为 27。
我在这里对编译的工作方式有什么误解吗?该应用程序在 API 26 和 25 上运行良好,但当我尝试在 API 24 上使用它时失败,出现与 API 21 相同的错误。
我的 build.gradle 文件看起来像这样。 https://gist.github.com/uruloke/f2f71dd6318d365cd53d74c274cd8523
当使用addOnFailureListener 中的GoogleSignInClient.silentSignIn() 时,出现以下异常
com.google.android.gms.common.api.ApiException: 4:
at com.google.android.gms.common.internal.zzb.zzy(Unknown Source)
at com.google.android.gms.common.internal.zzbk.zzz(Unknown Source)
at com.google.android.gms.common.internal.zzbl.zzr(Unknown Source)
at com.google.android.gms.common.api.internal.BasePendingResult.zzc(Unknown Source)
at com.google.android.gms.common.api.internal.BasePendingResult.setResult(Unknown Source)
at com.google.android.gms.auth.api.signin.internal.zzg.zza(Unknown Source)
at com.google.android.gms.auth.api.signin.internal.zzt.onTransact(Unknown Source)
at android.os.Binder.execTransact(Binder.java:565)
另外,如果我尝试使用GoogleSignInClient.getSignInIntent(),启动它时不会显示任何意图,但在我的onActivityResult 中,我得到一个不成功的结果,但状态消息为空
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
Log.d(TAG, result.getStatus().toString());
if (result.isSuccess()) {
// The signed in account is stored in the result.
GoogleSignInAccount signedInAccount = result.getSignInAccount();
menuFragment.updateUi(signedInAccount);
} else {
String message = result.getStatus().getStatusMessage();
if (message == null || message.isEmpty()) {
message = "Failed to sign in to Play Games. Maybe try updating it?";
}
new AlertDialog.Builder(this).setMessage(message)
.setNeutralButton(android.R.string.ok, null).show();
}
}
}
【问题讨论】:
-
“带有 AVD 的 Android 模拟器运行基于 Android 4.2.2 或更高版本的 Google API 平台。”你选对了图片吗?
-
播放服务适用于 minSdk 9+
-
@EugenPechanec 我的模拟器使用 Google API 运行。 i.imgur.com/OrsIIqc.png
-
@TimCastelijns ...在真实设备上。 uruloke,请发布整个异常和您应用的 build.gradle。
-
@EugenPechanec 刚刚用这些信息更新了我的问题。
标签: android google-play-services google-play-games