질문 : 모든 com.android.support 라이브러리는 정확히 동일한 버전 사양을 사용해야합니다.
android studio 2.3으로 업데이트 한 후 이 오류 메시지가 나타납니다. 앱이 정상적으로 실행되기 때문에 힌트 일 뿐이라는 것을 알고 있지만 정말 이상합니다.
모든 com.android.support 라이브러리는 정확히 동일한 버전 사양을 사용해야합니다 (버전을 혼합하면 런타임 충돌이 발생할 수 있음). 25.1.1, 24.0.0 버전을 찾았습니다. 예로는 com.android.support:animated-vector-drawable:25.1.1 및 com.android.support:mediarouter-v7:24.0.0이 있습니다.
내 gradle :
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.1.1'
compile 'com.android.support:support-v4:25.1.1'
compile 'com.android.support:design:25.1.1'
compile 'com.android.support:recyclerview-v7:25.1.1'
compile 'com.android.support:cardview-v7:25.1.1'
compile 'com.google.android.gms:play-services-maps:10.2.0'
compile 'com.google.android.gms:play-services:10.2.0'
compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
compile 'com.blankj:utilcode:1.3.6'
compile 'com.orhanobut:logger:1.15'
compile 'com.facebook.stetho:stetho:1.4.2'
provided 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'
compile 'com.mikepenz:iconics-core:2.8.2@aar'
compile('com.mikepenz:materialdrawer:5.8.1@aar') { transitive = true }
compile 'com.mikepenz:google-material-typeface:2.2.0.3.original@aar'
compile 'me.zhanghai.android.materialprogressbar:library:1.3.0'
compile 'com.github.GrenderG:Toasty:1.1.1'
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.8.0'
compile 'com.github.MAXDeliveryNG:slideview:1.0.0'
compile 'com.facebook.fresco:fresco:1.0.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.google.maps.android:android-maps-utils:0.4.4'
compile 'com.github.jd-alexander:library:1.1.0'
}
답변
다음 솔루션 중 하나로이 문제를 해결할 수 있습니다.
Android 스튜디오 3.0부터는 더 유용한 힌트를 보여 주므로 훨씬 쉬워 지므로이 힌트 만 따라 가면됩니다.
예를 들면 :
모든 com.android.support 라이브러리는 정확히 동일한 버전 사양을 사용해야합니다 (버전을 혼합하면 런타임 충돌이 발생할 수 있음). 27.0.2, 26.1.0 버전을 찾았습니다. 예를 들면 com.android.support:animated-vector-drawable:27.0.2 및 com.android.support:customtabs:26.1.0이 있습니다.
호환되지 않거나 버그로 이어질 수있는 라이브러리 또는 도구 및 라이브러리의 일부 조합이 있습니다. 이러한 비 호환성 중 하나는 최신 버전 (또는 특히 targetSdkVersion보다 낮은 버전)이 아닌 Android 지원 라이브러리 버전으로 컴파일하는 것입니다.
해결책:
이전 버전을 사용하지만 새 버전 번호를 사용하여 라이브러리를 명시 적으로 추가합니다.
제 경우에는 com.android.support:customtabs:26.1.0
이므로 다음을 추가해야합니다.
implementation "com.android.support:customtabs:27.0.2"
즉 : 두 번째 항목에서 라이브러리를 가져 와서 첫 번째 항목의 버전 번호로 구현합니다.
참고 : gradle이 종속성 그래프를 다시 빌드하고 충돌이 더 있는지 확인할 수 있도록 지금 동기화를 누르는 것을 잊지 마십시오.
설명:customtabs
사용하지 않기 때문에 오류 메시지가 혼란 스러울 수 있으므로 충돌이 발생합니다!
글쎄 .. 직접 사용하지는 않았지만 라이브러리 중 하나가 customtabs
을 사용하므로 직접 요청해야합니다.
어떤 라이브러리가 이전 버전을 담당하고 있는지 궁금하고 작성자에게 자신의 lib를 업데이트하도록 요청할 수 있습니다. Gradle 종속성 보고서 실행 방법을 알아 보려면 이전 답변을 참조하십시오.
참고
예전 답변:
CommonsWare 답변에서 영감을 얻었습니다.
Gradle 종속성 보고서를 실행하여 전체 종속성 트리가 무엇인지 확인하십시오.
여기에서 다른 버전의 Android 지원 라이브러리를 요청하는 라이브러리를 확인할 수 있습니다. 무엇을 요청하든 25.2.0 버전으로 직접 요청하거나 Gradle의 다른 충돌 해결 방법을 사용하여 동일한 버전을 얻을 수 있습니다.
수정:
gradle 플러그인 버전 기준 : 3.0 compile
implementation
또는 api
로 대체되었습니다. 이 답변 을 참조하십시오.
따라서 대신 사용하십시오.
./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
또는 Windows cmd의 경우 :
gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
충돌하는 버전을 검색하십시오.
com.google.android.gms:play-services:10.2.0
제거한 후 오류가 사라졌습니다.
그리고 com.google.android.gms:play-services-location:10.2.0
및 com.google.android.gms:play-services-maps:10.2.0
만 포함하십시오. 내가 사용하는 유일한 두 가지 플레이 서비스이기 때문입니다.
gms:play-services
는 지원 라이브러리의 일부 오래된 구성 요소에 의존하므로 명시 적으로 직접 추가해야합니다.
AS 3.0 이상.
운영:
./gradlew -q dependencies <module-name>:dependencies --configuration implementation
예:
./gradlew -q dependencies app:dependencies --configuration implementation
누군가가 새로운 gradle 플러그인에서 더 나은 방법을 알고 있다면 알려주십시오.
출처 : https://stackoverflow.com/questions/42374151/all-com-android-support-libraries-must-use-the-exact-same-version-specification
'프로그래밍 언어 > Android' 카테고리의 다른 글
Android에서 URL로 ImageView를 로드하는 방법 (0) | 2021.09.17 |
---|---|
Android Studio 오류 : /dev/kvm device permission denied (0) | 2021.09.16 |
Android 앱의 이름을 변경하는 방법 (0) | 2021.09.15 |
Android Studio에서 자동 가져 오기의 바로 가기 키 (0) | 2021.09.14 |
Android UserManager.isUserAGoat () 의 사용시기 (0) | 2021.09.14 |