2014年11月21日金曜日

Android : GoogleApiClient (Google Play Services) で発生する Internal Error の原因

いろいろ調べた挙句、自分の場合は「Google Play Developer Console で設定したパッケージ名とアプリのパッケージ名が違う」でした。せっかくなので、それも含めてありえる原因をまとめておきます。

  • AndroidManifest.xml に指定した meta-data の com.google.android.gms.games.APP_ID が Google Play Developer Console のリンク済みアプリに記載されたアプリID とは異なる
  • Google Developer Console (API のオンオフを設定したりする方)に入力した SHA1 の値が間違っている
    • ビルド時と異なる keystore ファイルから SHA1 を取得していた、など。
    • デバッグ版の場合は、debug.keystore がある場所(Windows の場合は通常 C:\Users\%ユーザ名%\.android )で以下のコマンド。keytool は java の bin 以下にあるのでパスを通しておく。
      keytool -exportcert -alias androiddebugkey -keystore debug.keystore -list -v
  • Google Developer Console で同意画面を作成していない(「API と認証」セクション)
  • GoogleApiClient の setScope で設定するスコープが足りない
  • Google Play Developer Console で設定したパッケージ名と実際のアプリのパッケージ名が異なる
    • AndroidStudio の場合、build.gradle の defaultConfig の applicationId を変える必要あり(ここを見落としていて、src の方のディレクトリ構造とパッケージ名や AndroidManifest.xml のパッケージ名を変更していた場合も Internal Error でした。)

凡ミスには気をつけたいものです。。。

0 件のコメント:

コメントを投稿