하루에 0.01%라도 성장하자

Develop/Android

Duplicate Class Found in Android

뚠님 2022. 6. 24. 15:06
반응형

앱 실행 도중 갑자기 위 에러가 발생하였다.

 

말 그대로 앱내 선언된 Class Name이 중복된다는 것인데...

( 난 그런적 없는데..? )

 

확인 해보니 iresultreceiver 라는 클래스가 겹치는 것을 확인했다.

 

Logcat 을 보면 이러한 경우 어떻게 트러블 슈팅 하면 좋을지 가이드 사이트를 제공한다.

 

https://developer.android.com/studio/build/dependencies#resolution_errors

 

빌드 종속 항목 추가  |  Android 개발자  |  Android Developers

Android 스튜디오에서 Gradle 빌드 시스템을 이용하여 빌드 종속성을 추가하는 방법에 관해 알아보세요.

developer.android.com

 

우선 확인해 보니 실제로 두개의 파일이 검색되었으나, 이는 내가 두개의 Class Name을 동일하게 작성한 것이 아니라 라이브러리나 os 에서 발생한 충돌이었다.

 

구글링 해서 확인하니 gradle.properties 에 한줄 추가하면 간단하게 해결할 수 있었다.,

 

# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app"s APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true
android.enableJetifier=true <- 이부분 추가

 

이 플래그는 바이너리를 재작성 해서 androidx 종속성을 사용하도록 기존 타사 라이브러리를 자동으로 마이그레이션 하는 효과를 가져온다.

 

 

반응형