본문 바로가기

Dev/안드로이드

Do it! 안드로이드 앱 프로그래밍 개정 7판 위험 권한 자동 부여

728x90
반응형

오늘은 또 다른 에러를 찾고 해결하는 과정을 설명해보려 합니다.

 

언제나 제가 소개하는 방식은 정답이 아님을 인지해주시고 제가 틀렸더라도 이해해주세요 :)

 

p.383 ~ 385 내용입니다. 외부 라이브러리를 이용한 위험 권한 자동 부여 방법에 대한 프로젝트입니다.

 

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

    implementation 'com.github.pedroSG94:AutoPermissions:1.0.3'

위 코드는 책에서 기본 build.gradle 파일에 추가한 코드입니다. 그런데, 저는 이렇게 실행을 하면 빌드가 안됐습니다.

 

왜그럴까? Build Output에 오류 메세지가 출력되면서 빌드에 실패했습니다.

 

Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.5.0-runtime (androidx.core:core:1.5.0) and support-compat-27.1.1-runtime (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules core-1.5.0-runtime (androidx.core:core:1.5.0) and support-compat-27.1.1-runtime (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules core-1.5.0-runtime (androidx.core:core:1.5.0) and support-compat-27.1.1-runtime (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.IResultReceiver found in modules core-1.5.0-runtime (androidx.core:core:1.5.0) and support-compat-27.1.1-runtime (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules core-1.5.0-runtime (androidx.core:core:1.5.0) and support-compat-27.1.1-runtime (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules core-1.5.0-runtime (androidx.core:core:1.5.0) and support-compat-27.1.1-runtime (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.ResultReceiver found in modules core-1.5.0-runtime (androidx.core:core:1.5.0) and support-compat-27.1.1-runtime (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.ResultReceiver$1 found in modules core-1.5.0-runtime (androidx.core:core:1.5.0) and support-compat-27.1.1-runtime (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules core-1.5.0-runtime (androidx.core:core:1.5.0) and support-compat-27.1.1-runtime (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules core-1.5.0-runtime (androidx.core:core:1.5.0) and support-compat-27.1.1-runtime (com.android.support:support-compat:27.1.1)

Go to the documentation to learn how to Fix dependency resolution errors.

이렇게 오류메세지가 나왔습니다.

 

여러 방법을 찾아봤는데 정말 간만에 스택오버플로우에서 제대로 된 도움을 받았습니다.

 

제가 원래 가장 선호하는 방법은 Android Developers 페이지에서 솔루션을 찾는 것인데

이번 경우에는 찾기가 쉽지 않았습니다.

 

해결 방법

책에는 나와있지 않지만 gradle.properties 파일을 수정해야 합니다.

 

android.enableJetifier=true

이 한 줄의 코드를 추가하면 됩니다.

 

이 코드를 설명하면 third party library들을 androidx dependency를 사용하도록 자동으로 migrate해줍니다.

 

마치며

 

정말 간단하게 해결할 수 있는 에러였는데 엄청 헤맸습니다.

 

다른 분들은 빠르게 디버깅할 수 있길 바랍니다 ㅠㅠ

 

오늘 포스팅은 짧고 굵게 써봤는데요. 좋은 하루 보내세요. 감사합니다~

728x90
반응형

"); wcs_do();