고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.
커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.
문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.
- 뒤끝 SDK 버전 : 5.12.0
- 프로젝트명 : friendnoonsong
- 스테이터스 코드 :
- 에러 코드 :
- 에러 메시지 : 구글 로그인 크래시 및 빌드 오류
안녕하세요. 구글 로그인 SDK를 적용하고 빌드한 뒤, 예제 코드의 StartGoogleLogin() 함수를 호출하면 앱이 강제 종료되는 오류가 발생하였습니다.
로그캣으로 출력한 오류는
2024-04-15 17:41:29.172 22602 22602 Error AndroidRuntime FATAL EXCEPTION: main
2024-04-15 17:41:29.172 22602 22602 Error AndroidRuntime Process: com.DefaultCompany.ProjectPuzzleUnity, PID: 22602
2024-04-15 17:41:29.172 22602 22602 Error AndroidRuntime java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/collection/ArraySet;
이였습니다.
https://community.thebackend.io/t/topic/7384
따라서 위의 링크와 같이 저와 똑같은 오류가 발생하는 뒤끝 문의 게시판의 문의글을 참고하여, 해당 해결 방법을 제 프로젝트에 적용했습니다.
EDM4U의 세팅과 BackendGoogleLoginAndroidDependencies.xml 을 문의글의 답변과 같이 전부 수정했습니다.
그러나, 해당 수정사항을 적용한 후 바로 빌드를 시도하는 순간 빌드 오류가 생겨났습니다. 생겨난 빌드 오류는 다음과 같습니다.
CommandInvokationFailure: Gradle build failed.
/Applications/Unity/Hub/Editor/2022.3.10f1/PlaybackEngines/AndroidPlayer/OpenJDK/bin/java -classpath "/Applications/Unity/Hub/Editor/2022.3.10f1/PlaybackEngines/AndroidPlayer/Tools/gradle/lib/gradle-launcher-7.2.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"
Environment Variables:
AMPLITUDE_API_KEY_REDBUCKET_DEV = 46b8b46515e7632fc42a504b72e05fd0
DEBUG_ENV_VAR = UnityHub
XPC_FLAGS = 0x0
__CFBundleIdentifier = com.unity3d.unityhub
AMPLITUDE_API_KEY_GREENBUCKET_DEV = 3ded2a762163603391a425f688f990c8
AMPLITUDE_TOKEN_REDBUCKET_DEV = U4PSN7S7PuYVRODivvdcFwbu8R6IHGqa
HOME = /Users/jeong-yura
AMPLITUDE_API_KEY_GREENBUCKET_PROD = c86fea37a9e1d3f0878b96e15b111c7c
JAVA_TOOL_OPTIONS = -Dfile.encoding=UTF-8
SENTRY_ACCESS_TOKEN = 3df78d9e53f8456aa90fbae044ce1a6261421ab1d0014674bc2e933477289017
JAVA_HOME = /Applications/Unity/Hub/Editor/2022.3.10f1/PlaybackEngines/AndroidPlayer/OpenJDK
AMPLITUDE_DEPLOYMENT_KEY_RED_BUCKET_DEV = client-wbjHYrmeSR87GmWOE7LDpf7sUySOIKHm
AMPLITUDE_TOKEN_GREENBUCKET_PROD = ZpUcbAdZXJYzNSoHsAWtL_s_JppwWid9
AMPLITUDE_API_KEY = 28f3cae0b33b8b3702120c9ed1a935aa
XPC_SERVICE_NAME = application.com.unity3d.unityhub.16424422.16424428
AMPLITUDE_API_KEY_STAGING = 83ee04fccc67e4fcc7dd527c4c6f1e21
WOOTRIC_CLIENT_TOKEN = NPS-aa8be4c3
USER = jeong-yura
MallocNanoZone = 0
LOGNAME = jeong-yura
__CF_USER_TEXT_ENCODING = 0x1F5:0x3:0x33
AMPLITUDE_API_KEY_YELLOWBUCKET_DEV = 48835b4d1f5e342aefe5f016324d296a
PATH = /usr/bin:/bin:/usr/sbin:/sbin
SSH_AUTH_SOCK = /private/tmp/com.apple.launchd.7GsViCVcua/Listeners
AMPLITUDE_API_KEY_YELLOWBUCKET_PROD = e03a9bbe92dc38a88cdb068d24c65b46
AMPLITUDE_TOKEN_REDBUCKET_PROD = jTIgKs5KTZOjiqEEVdZFbgo_VRhABduL
AMPLITUDE_TOKEN_YELLOWBUCKET_PROD = UYDQtPOw83dIfVy3SrW5oMyo7ru4PRkV
COMMAND_MODE = unix2003
TMPDIR = /var/folders/kj/9505dbj50fl6nd3nbh4h6sqw0000gn/T/
AMPLITUDE_TOKEN_GREENBUCKET_DEV = 84H2gMm_FJzhr3mBaX1lM1JVukmCM7d9
AMPLITUDE_TOKEN_YELLOWBUCKET_DEV = wKi8foVigDditGFvmZewRFWsEbX9Y0YO
SHELL = /bin/zsh
AMPLITUDE_API_KEY_REDBUCKET_PROD = ca12bb461ea96f9bdf5df4ded7d52994
AMPLITUDE_DEPLOYMENT_KEY_RED_BUCKET_PROD = client-zH8Y7OK1i331EKuG77C6UxN8ygcM6LzS
ORIGINAL_XDG_CURRENT_DESKTOP = undefined
stderr[
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':launcher:checkReleaseDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
> Duplicate class android.support.v4.graphics.drawable.IconCompatParcelizer found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class android.support.v4.os.ResultReceiver found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class android.support.v4.os.ResultReceiver$1 found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.arch.core.executor.ArchTaskExecutor found in modules core-runtime-2.0.0-runtime (androidx.arch.core:core-runtime:2.0.0) and jetified-androidx.arch.core.core-runtime-2.0.0-runtime (:androidx.arch.core.core-runtime-2.0.0:)
Duplicate class androidx.arch.core.executor.ArchTaskExecutor$1 found in modules core-runtime-2.0.0-runtime (androidx.arch.core:core-runtime:2.0.0) and jetified-androidx.arch.core.core-runtime-2.0.0-runtime (:androidx.arch.core.core-runtime-2.0.0:)
Duplicate class androidx.arch.core.executor.ArchTaskExecutor$2 found in modules core-runtime-2.0.0-runtime (androidx.arch.core:core-runtime:2.0.0) and jetified-androidx.arch.core.core-runtime-2.0.0-runtime (:androidx.arch.core.core-runtime-2.0.0:)
Duplicate class androidx.arch.core.executor.DefaultTaskExecutor found in modules core-runtime-2.0.0-runtime (androidx.arch.core:core-runtime:2.0.0) and jetified-androidx.arch.core.core-runtime-2.0.0-runtime (:androidx.arch.core.core-runtime-2.0.0:)
Duplicate class androidx.arch.core.executor.DefaultTaskExecutor$1 found in modules core-runtime-2.0.0-runtime (androidx.arch.core:core-runtime:2.0.0) and jetified-androidx.arch.core.core-runtime-2.0.0-runtime (:androidx.arch.core.core-runtime-2.0.0:)
Duplicate class androidx.arch.core.executor.TaskExecutor found in modules core-runtime-2.0.0-runtime (androidx.arch.core:core-runtime:2.0.0) and jetified-androidx.arch.core.core-runtime-2.0.0-runtime (:androidx.arch.core.core-runtime-2.0.0:)
Duplicate class androidx.core.accessibilityservice.AccessibilityServiceInfoCompat found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.ActivityCompat found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.ActivityCompat$1 found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.ActivityCompat$OnRequestPermissionsResultCallback found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.ActivityCompat$PermissionCompatDelegate found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.ActivityCompat$RequestPermissionsRequestCodeValidator found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.ActivityCompat$SharedElementCallback21Impl found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.ActivityCompat$SharedElementCallback21Impl$1 found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.ActivityManagerCompat found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.ActivityOptionsCompat found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.ActivityOptionsCompat$ActivityOptionsCompatImpl found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.AlarmManagerCompat found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.AppComponentFactory found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.AppLaunchChecker found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.AppOpsManagerCompat found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.BundleCompat found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.BundleCompat$BundleCompatBaseImpl found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.ComponentActivity found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.ComponentActivity$ExtraData found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.CoreComponentFactory found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.CoreComponentFactory$CompatWrapped found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.FrameMetricsAggregator found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.FrameMetricsAggregator$FrameMetricsApi24Impl found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.FrameMetricsAggregator$FrameMetricsApi24Impl$1 found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.FrameMetricsAggregator$FrameMetricsBaseImpl found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.FrameMetricsAggregator$MetricType found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.JobIntentService found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.JobIntentService$CommandProcessor found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.JobIntentService$CompatJobEngine found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.JobIntentService$CompatWorkEnqueuer found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.JobIntentService$CompatWorkItem found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.JobIntentService$GenericWorkItem found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.JobIntentService$JobServiceEngineImpl found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.JobIntentService$JobServiceEngineImpl$WrapperWorkItem found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.JobIntentService$JobWorkEnqueuer found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.JobIntentService$WorkEnqueuer found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NavUtils found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationBuilderWithBuilderAccessor found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$Action found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$Action$Builder found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$Action$Extender found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$Action$SemanticAction found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$Action$WearableExtender found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$BadgeIconType found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$BigPictureStyle found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$BigTextStyle found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$Builder found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$CarExtender found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$CarExtender$UnreadConversation found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$CarExtender$UnreadConversation$Builder found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$DecoratedCustomViewStyle found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$Extender found in modules core-1.0.0-runtime (androidx.core:core:1.0.0) and jetified-androidx.core.core-1.2.0-runtime (:androidx.core.core-1.2.0:)
Duplicate class androidx.core.app.NotificationCompat$GroupAlertBehavior found in<message truncated>
https://community.thebackend.io/t/gpgs-sdk/6954
해당 빌드 오류는 위 링크 문의에서 나타난 오류와 같기에 해당 글의 답변을 참고하여 Android Gradle 플러그인의 버전을 확인하였습니다.
build.gradle 과 gradle-wrapper 파일 확인 결과
id 'com.android.application' version '7.1.2' apply false
id 'com.android.library' version '7.1.2' apply false
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
으로 확인되었고, 해당 gradle 버전은 제가 사용중인 유니티 버전인 2022.3과 호환하는 버전임을 unity documentation을 통해 체크했습니다.
따라서 현재 해당 빌드 오류를 해결하는데 큰 어려움을 겪고 있습니다.
혹시 Android Gradle 버전을 업그레이드 해야 한다면 어떤 버전으로 업그레이드 해야 하는지, 또 그 방법은 무엇인지 알려주실 수 있으실까요?
감사합니다.