私は数日間、この上壁に頭を打っています。 GPSサインインの失敗に対する多くの問題点や解決策を記述した多くの記事を読んでいたにもかかわらず、私の問題の解決策を見つけることができませんでした。Google Playゲームサービスがサインインに失敗しました
要するに、私はLibGDXフレームワークを使ってAndroidのメーカーでゲームを開発していますし、ライブラリとしてBaseGameUtilsを追加して、必要なすべての依存関係を追加など
問題文:ゲームが起動すると、それはしようとしますGPGSに接続するが、常に「ログインに失敗しました」というメッセージで応答します。私は他の商用ゲーム - マイネットワークは「サクサク」ではないと私は自分のアカウントが無効にされたとは思わない
public static final int RESULT_SIGN_IN_FAILED
Result code sent back to the calling Activity when signing in fails.
The attempt to sign in to the Games service failed.
For example, this might happen if the network is flaky,
or the user's account has been disabled, or consent could not be obtained.
Constant Value: 10002
を
01-03 19:37:41.744 6693-7436/? E/TokenRequestor: You have wrong OAuth2 related configurations, please check. Detailed error: UNREGISTERED_ON_API_CONSOLE
01-03 19:37:41.764 20609-20609/? I/SignInActivity: Transition from 6 to 11
01-03 19:37:41.764 20609-20609/? W/SignInActivity: onSignInFailed()...
01-03 19:37:41.764 20609-20609/? W/SignInActivity: Sign in failed during 6
01-03 19:37:41.764 20609-20609/? W/SignInActivity: ==> Returning non-OK result: 10002
:logcatは、次のメッセージが含まれていますGPGSを使って作業を完璧にインストールしました。
私はAPKに署名しました - デバッグとリリースの両方(私はこの段階ではデバッグのみで作業しています)です。ゲームをGoogleデベロッパーコンソールに追加し、APIマネージャでリンクしてOAuth2クライアントIDを作成しました。実際、私はこれを何度もやり、リンクされたゲームを削除し、クライアントIDまたはSHA1指紋のいずれかが間違っていると思って再作成しました。 logcatメッセージは、OAuth2の設定が間違っていることを示唆していますが、私はこれを何度もチェックしています。署名を検証する最良の方法は何ですか?
私は自分のラップトップから直接展開する物理的なサムスンS7でテストしています。私のAndroid Gradleに必要なSigningConfigsが宣言されていますので、展開したゲームに正しく署名する必要があります。
android {
signingConfigs {
config {
keyAlias 'mygame-key'
keyPassword 'mypassword'
storeFile file('path/to/my/keystore.jks')
storePassword 'keystorepassword'
}
}
buildTypes {
release {
signingConfig signingConfigs.config
}
debug {
signingConfig signingConfigs.config
debuggable true
}
}
私のマニフェストには、必要な行があります。例えば。 -
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id"/>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
もともと、AndroidLauncherに、私はGameHelperクラスを使用していたが、これは廃止されていることを最近発見されたので、私はGoogleApiClientを使用するために自分のコードを変更しました。次のようにビルダーが定義される:
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Games.API).addScope(Games.SCOPE_GAMES)
.build();
他の方法のためのコードは、例えば、TrivialQuest例えばアプリケーションから直接採取されました -
@Override
protected void onStart() {
Log.d(TAG, "onStart()");
super.onStart();
mGoogleApiClient.connect();
}
ただし、Google APIクライアントコードを使用しても、これは違いがありません。
私はここで何を提供するかは分かりませんが、コードの他の部分を参照する必要がある場合はお知らせください。なぜコードが失敗したのかを知るために、コードやログで調べるべきことの提案があれば、非常に感謝しています。
事前に感謝します。
[Google Playデベロッパーコンソール](https://play.google.com/apps/publish)または[Google APIコンソール](https://console.developers.google.com)で作成していますか? )? – ianhanniballake
まず、デベロッパーコンソールのゲームサービスにアプリを追加しました。次に、リンクされたアプリケーションのリンクをクリックしてここに追加して認証します。ここから、名前、パッケージ、SHA-1の指紋を入力したAPIマネージャーに移動します。 – Gavin