마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

java.lang.RuntimeException: Duplicate class 관해서.

0 추천
안녕하세요.

안드로이드 스튜디오에서 이런 에러 메세지가 있어서요.

Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0).......

어디있는 파일인지 모르지만 여러 module 중 classes.jar 안에

androidx.core:core:1.0.0 와 com.android.support:support-compat:28.0.0 중복 클래스 라고 나오는데

해결할 수 있는 방법이 있는 궁금합니다. 답변 부탁 드립니다.

참고로 저는 support v4 계속 유지하고 싶습니다. androidx 는 안사용 할려고 합니다.

환경은 다음과 같습니다.

Android studio 3.4.2, java 버젼 1.8 을 사용하고 있습니다.

바쁘실텐데 답변 부탁드립니다. 고맙습니다.
yougJS (120 포인트) 님이 2019년 9월 26일 질문

2개의 답변

0 추천
androidX 를 안 쓰려면 androidx.core:core:1.0.0을 제거하고 다른 걸로 대체하시면 되지 않나요?

아니면 support-compa 대신에 androidx.appcompat:appcompat:1.1.0 를 사용해보시던가요.
쎄미 (162,410 포인트) 님이 2019년 9월 26일 답변
답변해 주셔서 고맙습니다. classes.jar에서 삭제가 되나요? 저는프로젝트에 있는  build gradle 에 implementation(' androidx.core:core:1.0.0') 하지 않았습니다. 그리고  complie 및 tartget version 은 28 입니다. 1.1.0 을 사용해도 되나요?
0 추천
최근에 내부 라이브러리나 특정 sdk를 연동하신 적이 있으신가요? 그 모듈내부 설정된 위 문제되는 클래스가 중복되는 경우가 발생하면 해당 에러를 뱉습니다. 버전은 크게 상관없었던 것 같구요.

둘중 높은 버전을 쓰게 되면 낮은버전 참조하던 프로젝트를 수정해야하구요. 컨트롤 할 수 있는 프로젝트에서 수정하게 되겠지요?
쭈쭈총각 (17,750 포인트) 님이 2019년 9월 26일 답변
답변해 주셔서 고맙습니다. 그렇군요. 제가 특정 SDK 를 연동한 적이 없습니다. 어디 파일을 고쳐야 할지 잘 모르겠습니다. androidx 는 사용안 할려고 하는데요. 어떻게 해야지 androidx 를 exclude 할 수 있는 말씀 부탁 드립니다.
gradle.properties 에
android.useAndroidX=true
android.enableJetifier=true
혹은 supportLibrary 버전 통일!
정말 답변을 주셔서 대단히 감사하고 고맙습니다. 그런데 저는 androidx 를 사용안하고 support 만 사용할려고 합니다. useAndroidX = true 하면 다 에러가 생깁니다. 다른 방법이 없을까요?
...