세상사는 이야기 / 도움이 되었다면 배너 클릭 부탁드려요~ →→→

2018년 8월 16일 목요일

[Unity Android] Unity 2018.2 GooglePlayGamesPlugin-0.9.50 Crash

Unity 2018.2버전으로 마이그래이션 후 playgameservices 로그인이 안되면서 Crash가 발생
- Google Play Games plugin for Unity 0.9.50 기준

Social.localUser.Authenticate 구글 플레이 게임 서비스 호출 -> Crash

Caused by: java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.

구글 플레이 게임 서비스의 app_id의 읽는 구조가 2018.2에서 변경되었다.
Unity Android 빌드 시 AndroidManifest.xml 병합 과정에서 개행문자 인식 오류로 인해 App_ID부분을 인식 하지 못한다.


해결 방법

아래 파일을 열어 app_id 앞의 여백에 "u003"을 입력한다.
Assets/GooglePlayGames/Editor/template-AndroidManifest.txt

<meta-data android:name="com.google.android.gms.games.APP_ID"
            android:value="\ __APP_ID__" />

->

<meta-data android:name="com.google.android.gms.games.APP_ID"
            android:value="\u003__APP_ID__" />
Google Play Games - Android Configuration -> Setup


아래 파일 확인 (위에것 말고 아래것만 수정해도 된다.)
GooglePlayGames/Plugins/Android/GooglePlayGamesManifest.plugin/AndroidManifest.xml

<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="\ 123456789" />

->

<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="\u003123456789" />

Open found in 
  and replace all instances of "\ " (note the trailing space after the slash) with "\u003". Worked for me on 2018.2.1f1.


08-13 20:02:17.527 4969-4969/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.kor.mdd, PID: 4969
    java.lang.Error: FATAL EXCEPTION [main]
    Unity version     : 2018.2.2f1
    Device model      : samsung SM-N950W
    Device fingerprint: samsung/greatqltecs/greatqltecs/NMF26X/500529:user/release-keys
    Caused by: java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5293)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
08-13 20:02:17.527 1908-2560/? W/ActivityManager:   Force finishing activity 1 com.ekkorr.msf/com.google.firebase.MessagingUnityPlayerActivity
08-13 20:02:17.531 1607-1607/? E/EGL_emulation: tid 1607: eglCreateSyncKHR(1346): error 0x3004 (EGL_BAD_ATTRIBUTE)

댓글 4개:

  1. 덕분에 문제를 해결하였습니다. 감사합니다.

    답글삭제
  2. 2018.2 부터 그런거였군요 5.6에서 올리다 보니 ㅎㅎ
    덕분에 해결했습니다.

    답글삭제