Google Play Game Service를 앱에 적용을 시키기 위해 BaseGameActivity를 사용했을 때에는 정상적으로 구현이 되었다.
하지만 BaseGameActivity가 없이 GameHelper로 구현하려고 하니 뜻대로 되지 않았다.
Google Play Game Service의 Developer's Guide의 Using GameHelper without BaseGameActivity 섹션에 나온대로 따라해 봤으나 아래와 같은 에러가 발생한 것이다.
05-14 10:59:06.133: E/AndroidRuntime(31368): FATAL EXCEPTION: main 05-14 10:59:06.133: E/AndroidRuntime(31368): java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information. 05-14 10:59:06.133: E/AndroidRuntime(31368): at com.google.android.gms.internal.eh$h.b(Unknown Source) 05-14 10:59:06.133: E/AndroidRuntime(31368): at com.google.android.gms.internal.eh$h.a(Unknown Source) 05-14 10:59:06.133: E/AndroidRuntime(31368): at com.google.android.gms.internal.eh$b.ec(Unknown Source) 05-14 10:59:06.133: E/AndroidRuntime(31368): at com.google.android.gms.internal.eh$a.handleMessage(Unknown Source) 05-14 10:59:06.133: E/AndroidRuntime(31368): at android.os.Handler.dispatchMessage(Handler.java:99) 05-14 10:59:06.133: E/AndroidRuntime(31368): at android.os.Looper.loop(Looper.java:130) 05-14 10:59:06.133: E/AndroidRuntime(31368): at android.app.ActivityThread.main(ActivityThread.java:3683) 05-14 10:59:06.133: E/AndroidRuntime(31368): at java.lang.reflect.Method.invokeNative(Native Method) 05-14 10:59:06.133: E/AndroidRuntime(31368): at java.lang.reflect.Method.invoke(Method.java:507) 05-14 10:59:06.133: E/AndroidRuntime(31368): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864) 05-14 10:59:06.133: E/AndroidRuntime(31368): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622) 05-14 10:59:06.133: E/AndroidRuntime(31368): at dalvik.system.NativeStart.main(Native Method) |
아무리 구글링을 해봐도 해답은 보이지 않았다.
StackOverflow에서는 해당 에러가 APP_ID를 설정하지 않았을 때 발생하므로 설정을 해주라는 답만이 있었다.
하지만 나는 Guide에 나온대로 AndroidManifest.xml 파일에 아래와 같이 설정을 했으므로 해당사항이 없었다.
<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"/> |
그런데..!
StackOverflow의 채택되지 않은 답변 중에 하나에 아래 설정이 언급되어 있었다.
<meta-data android:name="com.google.android.gms.appstate.APP_ID" android:value="@string/app_id" /> |
헐.. 세상에..
위 설정을 추가하니 나를 괴롭히던 에러가 사라진 것이다..
허무했다.. 왜 Guide에는 저런 설정이 언급되어 있지 않았던 것일까..?
Google Play Service 적용 예제를 만드는 동안 잘못된 guide를 몇개 찾았는데 고쳐지기는 할지 의문이다..
* 수정
작업을 하다가 한가지 알아낸 사실..
GameHelper 생성 시 GameHelper.CLIENT_ALL로 생성하면 GAMES, PLUS, APPSTATE 이렇게 세가지 클라이언트를 다 사용하겠다는 것이다.
그러므로 해당 클라이언트 별로 APP_ID를 추가해야 한다는 것..!
자세한 내용이 없는 매뉴얼만 믿고 따라한 내 잘못이 크다..
공부하자 ㅠ
댓글 없음:
댓글 쓰기