我正在尝试使用谷歌Android SDK,我收到了很多错误...... 我看到关于这个和任何其他错误的所有帖子仍然无法弄清楚这一点。 我查看了SH1,Google API,链接了我的应用,检查了app_id。
这是我的代码:
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API).addScope(Plus.SCOPE_PLUS_PROFILE)
.addApi(Games.API).addScope(Games.SCOPE_GAMES)
.build();
@Override
public void onStart() {
super.onStart();
mGoogleApiClient.connect();
}
@Override
public void onConnected(Bundle bundle) {
System.out.println("Logged in");
}
@Override
public void onConnectionSuspended(int i) {
mGoogleApiClient.connect();
}
@Override
public void onConnectionFailed(ConnectionResult result) {
if (!mIntentInProgress && result.hasResolution()) {
try {
mIntentInProgress = true;
startIntentSenderForResult(result.getResolution().getIntentSender(),
RC_SIGN_IN, null, 0, 0, 0);
} catch (IntentSender.SendIntentException e) {
// The intent was canceled before it was sent. Return to the default
// state and attempt to connect to get an updated ConnectionResult.
mIntentInProgress = false;
mGoogleApiClient.connect();
}
}
}
@Override
public void onActivityResult(int requestCode, int responseCode, Intent intent) {
super.onActivityResult(requestCode, requestCode, intent);
if (requestCode == RC_SIGN_IN) {
mIntentInProgress = false;
if (!mGoogleApiClient.isConnecting()) {
mGoogleApiClient.connect();
}
}
}
@Override
public boolean isSignedIn() {
return (mGoogleApiClient != null && mGoogleApiClient.isConnected());
}
我得到的错误:
02-21 10:07:18.920 11247-11712 / com.google.android.gms E / Volley:[937] a.a:意外的响应代码403 https://www.googleapis.com/games/v1/players/me?language=en_US 02-21 10:07:18.980 11247-17039 / com.google.android.gms E / SignInIntentService:未配置访问权限。 API(Google Play 游戏服务API)未启用您的项目。请使用 Google Developers Console用于更新您的配置。 com.google.android.gms.games.h.c.a 在com.google.android.gms.games.h.b.a(SourceFile:153) 在com.google.android.gms.games.a.bj.d(SourceFile:1683) 在com.google.android.gms.games.a.bj.b(SourceFile:610) 在com.google.android.gms.games.a.bj.b(SourceFile:585) 在com.google.android.gms.games.a.t.d(SourceFile:824) 在com.google.android.gms.games.service.w.b(SourceFile:347) 在com.google.android.gms.games.service.s.a(SourceFile:47) 在com.google.android.gms.games.service.GamesSignInIntentService.onHandleIntent(SourceFile:499) 在android.app.IntentService $ ServiceHandler.handleMessage(IntentService.java:65) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:136) 在android.os.HandlerThread.run(HandlerThread.java:61)02-21 10:07:18.985 17012-17012 / com.google.android.gms.ui E / LoadSelfFragment:无法登录 - 应用程序没有 注册客户ID
我也陷入onActivityResult
和onConnectionFailed
之间的循环中。我在onConnectionFailed
中收到的错误代码是4。
任何人都知道它会是什么?
答案 0 :(得分:0)
如果您的应用程序未正确链接到您的项目,则会出现此错误。请检查您是否已为调试版和发行版证书链接了SHA1指纹。
在我的情况下,当我使用Google API控制台(而不是google play开发者控制台)添加第二个SHA1指纹(发布版本)时出现此错误。
我建议在开发者控制台中删除您喜欢的应用,然后仅使用google play开发者控制台再次添加来管理SHA1密钥。按照此处的说明操作:
https://developers.google.com/games/services/console/enabling
答案 1 :(得分:0)
我找到了解决方案: 我将我的应用程序与错误的SHA1相关联......我使用了一些自定义键或类似的东西。我试图在我的设备上调试它并且它没有工作。
解决方案是从位于此处的调试密钥中提取SHA1 - >
C:\用户\ .android \ debug.keystore
然后将我的应用与其关联。