2017-01-03 27 views
0

私は数日間、この上壁に頭を打っています。 GPSサインインの失敗に対する多くの問題点や解決策を記述した多くの記事を読んでいたにもかかわらず、私の問題の解決策を見つけることができませんでした。Google Playゲームサービスがサインインに失敗しました

要するに、私はLibGDXフレームワークを使ってAndroidのメーカーでゲームを開発していますし、ライブラリとしてBaseGameUtilsを追加して、必要なすべての依存関係を追加など

問題文:ゲームが起動すると、それはしようとしますGPGSに接続するが、常に「ログインに失敗しました」というメッセージで応答します。私は他の商用ゲーム - マイネットワークは「サクサク」ではないと私は自分のアカウントが無効にされたとは思わない

... https://developers.google.com/android/reference/com/google/android/gms/games/GamesActivityResultCodesによると

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クライアントコードを使用しても、これは違いがありません。

私はここで何を提供するかは分かりませんが、コードの他の部分を参照する必要がある場合はお知らせください。なぜコードが失敗したのかを知るために、コードやログで調べるべきことの提案があれば、非常に感謝しています。

事前に感謝します。

+0

[Google Playデベロッパーコンソール](https://play.google.com/apps/publish)または[Google APIコンソール](https://console.developers.google.com)で作成していますか? )? – ianhanniballake

+0

まず、デベロッパーコンソールのゲームサービスにアプリを追加しました。次に、リンクされたアプリケーションのリンクをクリックしてここに追加して認証します。ここから、名前、パッケージ、SHA-1の指紋を入力したAPIマネージャーに移動します。 – Gavin

答えて

0

hereに記載されているすべての手順を注意深く読んでください(または再読してください)。 チュートリアルを最後からやり直した後で、これについてさらにヘルプが必要な場合は、コメントを追加してください。これで問題の

90%がに関連しています。間違ったSHA1署名証明書、間違ったアプリのパッケージ名、クライアントIDおよびそれらのような何か...が欠け

PS:hereあなたが見つけることができるすべての作業のサンプル

+0

ありがとうございます。私は真面目に私の問題が何か些細なことをあなたが言うように願っているので、私は別のflummoxedです!私はあなたが提供したリンクのステップをもう一度実行し、私がどのように乗っているかを教えてくれます。 – Gavin

+0

リンクに記載されている手順に従って、私のゲームを削除してGoogle Playデベロッパーコンソールに再登録しました。マニフェストとGradleファイルのクライアントID、パッケージ名の詳細をダブルチェックしました。 defaultConfigの下にあるapplicationIdでタイプミスが見つかりました...今は動作します。 :) ありがとうございました。 – Gavin

+0

ニース!!あなたがその問題を見つけるのを助けた場合、あなたはその答えを受け入れることができます;) – MatPag

0

パッケージ名はプロジェクトのいくつかの場所に表示され、Google Playデベロッパーコンソールに登録されているパッケージ名と一致する必要があります。例えば。 -

アンドロイドbuild.gradle

defaultConfig { 
    applicationId "com.package.name" 
    ... 
} 

アンドロイドのAndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.package.name" 
    ... 
</manifest> 

私はアンドロイドのbuild.gradleに私のAPPLICATIONIDのタイプミスがありました。これが修正されると、Google Playサービスが正常にログインしました。

関連する問題