이제 며칠 동안 내 머리를 벽에 대고 벽을 두드 리고 있습니다. GPS 로그인 문제에 대한 수많은 문제/해결책을 설명하는 많은 게시물을 읽었음에도 불구하고 내 문제에 대한 해결책을 찾을 수 없었습니다. 한마디로 Google Play 게임 서비스에 로그인하지 못했습니다.
, 나는 LibGDX 프레임 워크를 사용하여 안드로이드 스튜디오에서 게임을 개발하고 및 라이브러리로 BaseGameUtils을 추가하고 이문제 설명이 필요한 모든 종속 등의 추가 : 게임이 시작되면, 그것은 시도를 GPGS에 연결하지만 항상 '로그인 실패'메시지로 응답합니다. - 다른 상용 게임 나는
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
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
내 네트워크 '색다른'하지 않고 내 계정이 비활성화되었습니다 생각 안 함 : 로그 캣은 다음과 같은 메시지가 포함 GPGS와 완벽하게 잘 작동합니다.
저는 APK에 서명했습니다 - 디버그와 릴리스 (이 단계에서는 디버그로만 작업하고 있음). 게임을 Google 개발자 콘솔에 추가하고 API 관리자에서 링크하고 OAuth2 클라이언트 ID를 만들었습니다. 사실, 나는 여러 번이 작업을 수행했습니다. 링크 된 게임을 삭제하고 내 클라이언트 ID 또는 SHA1 지문이 올바르지 않다고 다시 생각합니다. logcat 메시지는 OAuth2 설정이 잘못되었음을 암시하지만 나는 이것을 여러 번 확인했는데 모두 괜찮아 보인다. 서명을 확인하는 가장 좋은 방법은 무엇입니까?
필자는 랩톱에서 직접 배치 한 물리적 인 Samsung 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
}
}
내 매니페스트에는 필수 입력란이 있습니다. 예 : -
원래 AndroidLauncher에, 나는 GameHelper 클래스를 사용했지만이 사용되지, 그래서 내가 GoogleApiClient를 사용하려면 코드를 변경하는 것이 최근에 발견<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"/>
.
다른 방법에 대한 코드가 TrivialQuest 예 앱에서 직접 촬영 한mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Games.API).addScope(Games.SCOPE_GAMES)
.build();
, 예를 들어 다음과 같이 정의된다 빌더 -
@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
먼저 개발자 콘솔의 게임 서비스에 앱을 추가했습니다. 그런 다음 링크 된 앱 링크를 클릭하고 인증을 위해 여기에 추가했습니다. 여기에서 API 관리자로 이동하여 이름, 패키지 및 SHA-1 지문을 입력합니다. – Gavin