[Unity]/[Unity]

[Unity] Error Unity AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.gms.games.Games

극꼼 2022. 4. 4. 20:12
반응형


프로젝트 셋팅에 있는 Player - Publishing Settings - Minify - Release에서 Proguard를 사용했더니 다음과 같은 에러가 logcat에 뜨면서 구글 플레이 서비스에 로그인이 되지 않습니다.

 

AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.gms.games.Games

 

구글링을 해보니 Proguard에서 난독화한 후에 외부 라이브러리를 사용할 때 문제가 된다고 합니다.

Proguard 를 끄지 않고, 관련 플러그인을 예외처리해주면 문제가 해결된다고 하니 해보겠습니다.

 


1. 유니티 내에서 Proguard 사용자 설정을 바꾸기

Player Settings - Player - Publishing Settings - Build - User Proguard File 체크

 

2. 해당 파일(proguard-user.txt)에 예외처리

오류 메시지를 확인하면서 -keep 구문을 사용해 추가해줍니다.

-keep class com.google.android.gms.games.leaderboard.** { *; }
-keep class com.google.android.gms.games.snapshot.** { *; }
-keep class com.google.android.gms.games.achievement.** { *; }
-keep class com.google.android.gms.games.event.** { *; }
-keep class com.google.android.gms.games.stats.** { *; }
-keep class com.google.android.gms.games.video.** { *; }
-keep class com.google.android.gms.games.* { *; }
-keep class com.google.android.gms.common.api.ResultCallback { *; }
-keep class com.google.android.gms.signin.** { *; }
-keep class com.google.android.gms.dynamic.** { *; }
-keep class com.google.android.gms.dynamite.** { *; }
-keep class com.google.android.gms.tasks.** { *; }
-keep class com.google.android.gms.security.** { *; }
-keep class com.google.android.gms.base.** { *; }
-keep class com.google.android.gms.actions.** { *; }
-keep class com.google.games.bridge.** { *; }
-keep class com.google.android.gms.common.ConnectionResult { *; }
-keep class com.google.android.gms.common.GooglePlayServicesUtil { *; }
-keep class com.google.android.gms.common.api.** { *; }
-keep class com.google.android.gms.common.data.DataBufferUtils { *; }
-keep class com.google.android.gms.games.quest.** { *; }
-keep class com.google.android.gms.nearby.** { *; }

 

3. Assets - Play Services Resolver - Android Resolver - Force Resolve

Assets - Play Services Resolver - Android Resolver - Force Resolve 를 눌러줍니다.

 

 

이후에 해당 오류가 사라진 것을 확인할 수 있습니다. 

반응형