Android에서 게임 클라이언트 초기화
새로운 Google Play 게임 서비스를 사용하고 있습니다.
처음에 나는이 다음에이 하우투 https://developers.google.com/games/services/android/quickstart 다음이 완료 https://developers.google.com/games/services/android/init
나는 이렇게 끝납니다.
05-16 20:01:39.034: E/AndroidRuntime(18257): FATAL EXCEPTION: main
05-16 20:01:39.034: E/AndroidRuntime(18257): java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$f.a(Unknown Source)
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$f.a(Unknown Source)
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$b.p(Unknown Source)
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.google.android.gms.internal.p$a.handleMessage(Unknown Source)
05-16 20:01:39.034: E/AndroidRuntime(18257): at android.os.Handler.dispatchMessage(Handler.java:99)
05-16 20:01:39.034: E/AndroidRuntime(18257): at android.os.Looper.loop(Looper.java:137)
05-16 20:01:39.034: E/AndroidRuntime(18257): at android.app.ActivityThread.main(ActivityThread.java:5041)
05-16 20:01:39.034: E/AndroidRuntime(18257): at java.lang.reflect.Method.invokeNative(Native Method)
05-16 20:01:39.034: E/AndroidRuntime(18257): at java.lang.reflect.Method.invoke(Method.java:511)
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-16 20:01:39.034: E/AndroidRuntime(18257): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-16 20:01:39.034: E/AndroidRuntime(18257): at dalvik.system.NativeStart.main(Native Method)
튜토리얼을 단계별로 따르려고 노력했습니다. 나는 무엇이 잘못되고 있는지 이해하지 못한다.
ava.lang.IllegalStateException : 치명적인 개발자 오류가 발생했습니다. 자세한 정보는 로그를 확인하십시오.
나는 logcat = logs라고 생각했고 더 이상 아무것도 없습니다. 그렇다면 이러한 "로그"는 어디에서 찾을 수 있습니까?
내 구현은 한 가지만 다릅니다. BaseGameActivity를 확장하는 ClassA와 ClassA를 확장하고 View.OnClickListener를 구현하는 ClassB가 있으므로 ClassB 클래스에 https://developers.google.com/games/services/android/init의 모든 메서드가 있습니다 .
도움을 주셔서 감사합니다
처음에는 같은 문제가있었습니다. 내가해야 할 일은 필터링되지 않은 전체 LogCat 로그를 보는 것이 었습니다. 거기에서 나는 메시지를 보았다.
GamesIntentService (17929) : Google Play 게임 서비스를 사용하려면 매니페스트의 애플리케이션 태그에 'com.google.android.gms.games.APP_ID'라는 이름의 메타 데이터 태그가 필요합니다.
따라서 strings.xml
라는 항목을 만들었다 고 가정 하고 태그 아래에 app_id
다음을 추가해보십시오 .AndroidManifest.xml
<application>
<meta-data android:name="com.google.android.gms.games.APP_ID"
android:value="@string/app_id" />
게임 서비스 탭 에서 APP_ID를 찾을 수 있습니다.
Hetabiquo 응답을 보완 하여 게임에서 클라우드 저장 서비스 도 사용하는 경우 <application>
태그 범위 내에 다음 메타 데이터 태그를 추가하여 애플리케이션의 AndroidManifest.xml도 업데이트해야합니다.
<meta-data android:name="com.google.android.gms.appstate.APP_ID" android:value="@string/app_id" />
같은 문제가 있었지만 메타 태그가 정확했습니다. 필터링되지 않은 logcat을 찾아보고 다른 메타 태그를 검색하고 있다는 것을 알았습니다.
메타 태그의 이름은 GameHelper 생성자 (사용하는 경우)에 제출 한 클라이언트 번호의 종류에 따라 다릅니다.
new GameHelper(this, GameHelper.CLIENT_GAMES);
나를 위해 실수로 CLIENT_ALL을 사용하여 메타 태그 이름에 대한 잘못된 기대를 얻었습니다. CLIENT_GAMES로 변경했고 모든 것이 순조롭게 작동했습니다.
Hetabiquo 외에도 Games Services 탭 에서 APP_ID를 확인할 수 있습니다 .
나는 꽤 오랫동안이 버그로 고생했다. 각 파일을 한 번에 하나씩 검색하는 basegameutils 패키지를 살펴보기로 결정했습니다. gameHelperUtils 클래스에서 getAppIdFromResource () 메서드를 찾았습니다. 그 안에서 리소스에서 앱 ID를 요청했습니다. 매니페스트 파일에 앱 ID를 하드 코딩 한 것을 기억했습니다. 그런 다음 문자열 파일에 app_id의 문자열 리소스를 추가했습니다. 놀랍게도 오류가 사라지고 리더 보드가 나타났습니다!
참고 URL : https://stackoverflow.com/questions/16595225/initializing-games-client-in-android
'Nice programing' 카테고리의 다른 글
ng-repeat를 사용하여 AngularJS에서 맵 항목을 반복하는 방법 (0) | 2020.11.10 |
---|---|
(.1f + .2f ==. 3f)! = (.1f + .2f) .Equals (.3f) 왜? (0) | 2020.11.10 |
Golang에서지도의 동등성을 테스트하는 방법은 무엇입니까? (0) | 2020.11.10 |
JSON.net으로 JToken의 이름 / 키 얻기 (0) | 2020.11.10 |
Python 스크립트를 벤치마킹하는 간단한 방법이 있습니까? (0) | 2020.11.10 |