모든 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 플러그인에서 더 나은 방법을 알고 있다면 알려주십시오.
project/.idea/libraries
파일 시스템의 폴더로 이동하여 어떤 라이브러리가 다른지 확인하십시오.build.gradle
파일에 동일한 버전의 이러한 라이브러리를 수동으로 포함해야 합니다.- 그런 다음 프로젝트를 동기화하십시오.
예 :
compile 'com.android.support:appcompat-v7:25.2.0'
// Wrong library version found on 1st point
compile 'com.android.support:customtabs:25.2.0'
다음 버전이나 라이브러리뿐만 아니라 모든 경우에 :
오류에 대해 설명하는 작은 정보 창에주의를 기울이고 변경하고 추가해야하는 예를 알려 줍니다.
이 경우 :
25.1.1, 24.0.0 버전을 찾았습니다. 예를 들어 com.android.support:animated-vector-drawable:25.1.1 및 com.android.support:mediarouter-v7:24.0.0이 있습니다.
너의
com.android.support:animated-vector-drawable:25.1.1
버전 25.1.1 이고
com.android.support:mediarouter-v7:24.0.0
버전 24.0.0 이므로 동일한 버전의 mediarouter를 추가해야합니다.
com.android.support:mediarouter-v7:25.1.1
그리고 작은 정보 창에서 말하는 모든 예, 이 경우 버전 25.1.1이없는 모든 라이브러리에 대해 그렇게합니다.
변경해야하는 다음 라이브러리 및 패키지를 보려면 표시된 라이브러리를 수정 한 후 gradle을 동기화해야합니다.
중대한:
하나 이상의 지정된 라이브러리를 명시 적으로 사용하지 않고 오류가 발생하면 다른 라이브러리에서 내부적으로 사용하고 있음을 의미합니다. 어쨌든 명시 적으로 컴파일하십시오.
또한 다른 방법을 사용하여 실제로 컴파일하는 모든 라이브러리의 버전 차이를 확인할 수 있습니다 (예 : gradle 종속성 보고서를 실행하거나 라이브러리 파일로 이동), 실제 목표는 함께 사용하는 모든 라이브러리를 컴파일하는 것입니다. 동일한 버전 .
build.gradle (Module : app)의 맨 끝에 이것을 추가하십시오.
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '25.3.1'
}
}
}
}
'25 .3.1 '을 모든 종속성에 사용할 Android 지원 라이브러리 버전으로 바꾸어야합니다.이 버전은 완전한 SDK 버전보다 낮아서는 안됩니다.
다시 동기화 gradle보다
문제를 해결하는 가장 좋은 방법은 Android Studio에서 제안한 모든 'com.android.support : ...'를 구현하는 것입니다.
(사용중인 지원 버전은 중요하지 않습니다 – 27.1.1, 28.0.0 등)
커서를 오류 라인에 놓습니다. 예 :
implementation 'com.android.support:appcompat-v7:28.0.0'
Android Studio는 'com.android.support : ...'가 'com.android.support:appcompat-v7:28.0.0'과 다른 버전을 제안합니다.
예
모든 com.android.support 라이브러리는 정확히 동일한 버전 사양을 사용해야합니다 (버전을 혼합하면 런타임 충돌이 발생할 수 있음). 28.0.0, 27.1.0, 27.0.2 버전을 찾았습니다. 예로는 com.android.support:animated-vector-drawable:28.0.0 및 com.android.support:exifinterface:27.1.0이 있습니다.
그래서 com.android.support:animated-vector-drawable:28.0.0
& com.android.support:exifinterface:28.0.0
. 이제 gradle 파일을 동기화하십시오.
이 줄에 오류가 없을 때까지 제안 된 모든 'com.android.support : ...'를 하나씩 구현해보십시오. implementation 'com.android.support:appcompat-v7:28.0.0'
제 경우에는
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:animated-vector-drawable:28.0.0'
implementation 'com.android.support:exifinterface:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:customtabs:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
이러한 모든 종속성은 사용자에게 다를 수 있습니다.
Android Studio 2.3으로 업데이트 한 후 똑같은 문제가 발생했습니다.
이 줄을 종속성에 추가하면 내 문제가 해결되었습니다.
compile 'com.android.support:customtabs:25.2.0'
A) 실행 gradle dependencies
또는./gradlew dependencies
B) 트리를보고 어떤 종속성이 제어하지 않는 종속성에 대해 다른 지원 라이브러리 버전을 지정하고 있는지 파악합니다.
이 경고는 종속성이 자신의 코드에서 직접 완전히 사용되지 않는 경우에도 표시된다는 것을 몰랐습니다. 필자의 경우 Facebook은 내가 사용하지 않은 일부 지원 라이브러리를 지정합니다. 아래에서 대부분의 종속성이 -> XXX (*) 기호 로 표시된 25.2.0의 내 고유 사양에 의해 재정의되었음을 알 수 있습니다. 카드보기 및 사용자 정의 탭 라이브러리는 누구에 의해 재정의되지 않았으므로 사용하지 않더라도 25.2.0을 직접 요청해야합니다.
+--- com.facebook.android:facebook-android-sdk:4.17.0
| +--- com.android.support:support-v4:25.0.0 -> 25.2.0 (*)
| +--- com.android.support:appcompat-v7:25.0.0 -> 25.2.0 (*)
| +--- com.android.support:cardview-v7:25.0.0
| | \--- com.android.support:support-annotations:25.0.0 -> 25.2.0
| +--- com.android.support:customtabs:25.0.0
| | +--- com.android.support:support-compat:25.0.0 -> 25.2.0 (*)
| | \--- com.android.support:support-annotations:25.0.0 -> 25.2.0
| \--- com.parse.bolts:bolts-android:1.4.0 (*)
Gradle이 이미 경고하고 예제를 제공했다면 ...
예를 들어 com.android.support:animated-vector-drawable:25.1.1 및 com.android.support:mediarouter-v7:24.0.0이 있습니다.
... 낮은 버전에 대해 grep 강조 표시를 넣으면 훨씬 더 쉽습니다 gradle dependencies
.
./gradlew dependencies | grep --color -E 'com.android.support:mediarouter-v7|$'
변수 사용 : 다음과 같은 작업을 수행하면 모든 라이브러리에서 동일한 버전을 사용하는 것이 더 쉬워집니다.
dependencies {
ext {
support_library_version = '25.2.0'
google_play_services_version = '10.2.0'
}
//#####################################################################
// Support Library
//#####################################################################
compile "com.android.support:appcompat-v7:${support_library_version}"
compile "com.android.support:palette-v7:${support_library_version}"
compile "com.android.support:design:${support_library_version}"
//#####################################################################
// Google Play Services
//#####################################################################
compile "com.google.android.gms:play-services-auth:${google_play_services_version}"
compile "com.google.android.gms:play-services-ads:${google_play_services_version}"
compile "com.google.android.gms:play-services-analytics:${google_play_services_version}"
//#####################################################################
// Firebase
//#####################################################################
compile "com.google.firebase:firebase-core:${google_play_services_version}"
compile "com.google.firebase:firebase-auth:${google_play_services_version}"
compile "com.google.firebase:firebase-messaging:${google_play_services_version}"
Google에서이 버전 관리를 처리하는 방법에 대한 자세한 내용은 https://developer.android.com/studio/build/index.html#top-level 문서에서 찾을 수 있습니다.
나는 이것을 추가한다.
compile 'com.android.support:mediarouter-v7:25.2.0'
Updated
새 SDK 버전
compile 'com.android.support:mediarouter-v7:28.0.0-alpha3'
동일한 오류가 발생하는 경우 appcompat
implementation 'com.android.support:appcompat-v7:27.0.1'
그런 다음 추가하면 design
해결되었습니다.
implementation 'com.android.support:appcompat-v7:27.0.1'
implementation 'com.android.support:design:27.0.1'
나를 위해, 추가
implementation 'de.mrmaffen:vlc-android-sdk:2.0.6'
에 포함 appcompat-v7:23.1.1
했다
.idea / libraries
없이 vlc
, appcompat
혼자이면 충분합니다.
위의 모든 답변과 의견을 이미 보았지만이 답변은 새로운 개발자가 쉽게 얻지 못할 수있는 것을 정리하는 것입니다.
./gradlew -q 종속성 app : dependencies --configuration compile
위의 선은 의심의 여지없이 당신의 생명을 구할 것입니다. 그러나 위 선의 결과에서 정확한 포인트를 얻는 방법.
위의 명령에서 모든 종속성 차트 또는 목록을 가져 오면 코드에있는 충돌하는 버전 번호를 검색해야합니다. 아래 이미지를 참조하십시오.
위 이미지에서 23.4.0 이 문제 를 일으키는 것을 볼 수 있지만 gradle 파일에서 찾을 수 없습니다. 이제이 버전 번호 (23.4.0)가 우리를 구할 것입니다. 이 번호가 있으면 위의 명령 결과 결과에서이 번호를 찾고 해당 종속성을 gradle 파일에 직접 가져옵니다. 명확한 시야를 얻으려면 아래 이미지를 참조하십시오.
com.android.support:cardview-v7:23.4.0 및 com.android.support:customtabs:23.4.0 이 문제를 일으키는 버전을 사용하고 있음을 분명히 알 수 있습니다 . 이제 종속성 목록에서 해당 줄을 복사하고 gradle 파일에서 명시 적으로 사용하지만 업데이트 된 버전 링크를 사용하면됩니다.
구현 'com.android.support:cardview-v7:26.1.0'구현 'com.android.support:customtabs:26.1.0'
충돌을 해결하는 또 다른 방법은 다음과 같이 모든 종속성에 대해 올바른 버전을 적용하는 것입니다.
dependencies {
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'com.android.support' && details.requested.name == 'support-v4') {
details.useVersion "27.0.2"
}
}
...
}
https://docs.gradle.org/current/userguide/customizing_dependency_resolution_behavior.html
support-v4 대신 support-v13 사용
compile 'com.android.support:support-v13:25.2.0'
앱 수준 종속성에 추가
implementation 'com.android.support:asynclayoutinflater:28.0.0'
implementation 'com.android.support:exifinterface:28.0.0'
implementation 'com.android.support:animated-vector-drawable:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
내 문제는 당신과 비슷합니다. 여기에 오류가 있습니다!
compile 'com.android.support:appcompat-v7:25.3.0'
모든 com.android.support 라이브러리는 정확히 동일한 버전 사양을 사용해야합니다 (버전을 혼합하면 런타임 충돌이 발생할 수 있음). 25.3.0, 24.0.0 버전을 찾았습니다. 예로는 'com.android.support:animated-vector-drawable:25.3.0'및 'com.android.support:mediarouter-v7:24.0.0'이 있습니다.
이 예제에는 'com.android.support:animated-vector-drawable:25.3.0'및 'com.android.support:mediarouter-v7:24.0.0'이 포함됩니다.
종속성에 이러한 코드를 추가하고 버전이 동일한 지 확인하십시오.
compile 'com.android.support:animated-vector-drawable:25.3.0'
compile 'com.android.support:mediarouter-v7:25.3.0'
compile 'com.google.android.gms:play-services:10.2.4'
compile 추가 한 후 동일한 오류가 발생했습니다 'com.android.support:appcompat-v7:25.3.1'
.
문제를 추가 animated-vector-drawable
하고 mediarouter libs
수정했습니다.
compile 'com.google.android.gms:play-services:10.2.4'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:animated-vector-drawable:25.3.1'
compile 'com.android.support:mediarouter-v7:25.3.1'
나는 이것을 가지고 있었다 :
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.google.firebase:firebase-auth:12.0.1'
implementation 'com.google.firebase:firebase-firestore:12.0.1'
implementation 'com.google.firebase:firebase-messaging:12.0.1'
implementation 'com.google.android.gms:play-services-auth:12.0.1'
implementation'com.facebook.android:facebook-login:[4,5)'
implementation 'com.twitter.sdk.android:twitter:3.1.1'
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'org.jetbrains:annotations-java5:15.0'
implementation project(':vehiclesapi')
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
솔루션은 쉬웠습니다. 기본 종속성은 모두 정확하므로 타사 종속성은 그대로 둡니다. 범인을 찾을 때까지 하나씩 제거하고 페이스 북으로 밝혀졌습니다! Android 지원 라이브러리의 버전 27.0.2를 사용합니다. 나는 cardview 버전 27.1.1을 추가하려고 시도했지만 작동하지 않았고 솔루션이 여전히 충분히 간단했습니다.
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.google.firebase:firebase-auth:12.0.1'
implementation 'com.google.firebase:firebase-firestore:12.0.1'
implementation 'com.google.firebase:firebase-messaging:12.0.1'
implementation 'com.google.android.gms:play-services-auth:12.0.1'
implementation('com.facebook.android:facebook-login:[4,5)'){
// contains com.android.support:v7:27.0.2, included required com.android.support.*:27.1.1 modules
exclude group: 'com.android.support'
}
implementation 'com.android.support:cardview-v7:27.1.1' // to replace facebook sdk's cardview-v7:27.0.2.
implementation 'com.twitter.sdk.android:twitter:3.1.1'
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'org.jetbrains:annotations-java5:15.0'
implementation project(':vehiclesapi')
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
이 두 가지를 사용하여 Android Studio 2.3으로 업그레이드 한 후 문제를 해결했습니다.
compile 'com.android.support:animated-vector-drawable:25.0.0'
compile 'com.android.support:mediarouter-v7:25.0.0'
나는 전에 같은 문제가 있었고 그것에 대한 해결책을 얻었습니다.
다른 버전이 있지만 동일한 버전의 support:appcompat
.
예를 들어 오류의 경우 :
모든 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이 있습니다.
* 해결책은 다음과 같은 라이브러리의 버전을 컴파일하는 것입니다.
compile 'com.android.support:mediarouter-v7:25.1.1'
다른 라이브러리 같은 문제를했고했습니다 - 경우 다른 버전은 당신과 함께 컴파일 support:appcompat
버전
이것은 내 문제를 해결했으며 귀하의 문제가 해결되기를 바랍니다.
최고의 소원 :)
답변을 검색하고 결합한 후이 질문의 2018 버전 이 저에게 효과적이었습니다.
1) 탐색 탭에서 프로젝트보기로 변경
2) [YourProjectName] /. idea / libraries /로 이동합니다 .
3) Gradle__com_android_support_ [libraryName]로 시작하는 모든 파일 삭제
예 : Gradle__com_android_support_animated_vector_drawable_26_0_0.xml
4) gradle 파일에서 변수를 정의하고 $ {variableName} 과 같은 버전 번호를 바꾸는 데 사용합니다.
정의 변수 :
ext {
support_library_version = '28.0.0' //use the version of choice
}
변수 사용 :
implementation "com.android.support:cardview-v7:${support_library_version}"
gradle 예 :
dependencies {
ext {
support_library_version = '28.0.0' //use the version of choice
}
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "com.android.support:animated-vector-drawable:${support_library_version}"
implementation "com.android.support:appcompat-v7:${support_library_version}"
implementation "com.android.support:customtabs:${support_library_version}"
implementation "com.android.support:cardview-v7:${support_library_version}"
implementation "com.android.support:support-compat:${support_library_version}"
implementation "com.android.support:support-v4:${support_library_version}"
implementation "com.android.support:support-core-utils:${support_library_version}"
implementation "com.android.support:support-core-ui:${support_library_version}"
implementation "com.android.support:support-fragment:${support_library_version}"
implementation "com.android.support:support-media-compat:${support_library_version}"
implementation "com.android.support:appcompat-v7:${support_library_version}"
implementation "com.android.support:recyclerview-v7:${support_library_version}"
implementation "com.android.support:design:${support_library_version}"
}
이 오류에 대한 2018 업데이트에서 프로젝트 구조에서 구현 추가
implementation 'com.android.support:support-v13:28.0.0'
프로젝트 모드-> 외부 라이브러리 에서 문제를 찾을 수 있습니다. 제 경우에는 버전 28과 외부 라이브러리를 사용 com.android.support:support-media-compat-26.0.0
하고 있으며 여기에 오류가 있습니다.
구현 후 support v13
작동 중입니다.
android studio 3.4 및 sdk 버전을 28.0.0으로 업그레이드 한 후이 문제에 직면했습니다. 아래 종속성을 적용하면 문제가 해결되었습니다.
implementation 'com.android.support:exifinterface:28.0.0'
24.0.0
대신 버전으로 컴파일 할 다른 종속성을 정의했습니다 25.1.1
. 모든 종속성 버전을 25.1.1
.
오류를 제거하기 위해 gradle에 다음 줄을 추가해야했습니다.
compile 'com.android.support:animated-vector-drawable:25.2.0'
compile 'com.android.support:preference-v7:25.2.0'
compile 'com.android.support:customtabs:25.2.0'
compile 'com.android.support:cardview-v7:25.2.0'
./gradlew tasks --all을 실행하고 대상 버전 (25.3.1)과 다른 버전 인 종속성을 확인했습니다. 다음과 같은 결과를 얻을 수 있습니다.
app:prepareComAndroidSupportAnimatedVectorDrawable2531Library - Prepare com.android.support:animated-vector-drawable:25.3.1
app:prepareComAndroidSupportAppcompatV72531Library - Prepare com.android.support:appcompat-v7:25.3.1
app:prepareComAndroidSupportCardviewV72531Library - Prepare com.android.support:cardview-v7:25.3.1
app:prepareComAndroidSupportCustomtabs2531Library - Prepare com.android.support:customtabs:25.3.1
app:prepareComAndroidSupportDesign2531Library - Prepare com.android.support:design:25.3.1
app:prepareComAndroidSupportMediarouterV72531Library - Prepare com.android.support:mediarouter-v7:25.3.1
app:prepareComAndroidSupportPaletteV72531Library - Prepare com.android.support:palette-v7:25.3.1
app:prepareComAndroidSupportRecyclerviewV72531Library - Prepare com.android.support:recyclerview-v7:25.3.1
app:prepareComAndroidSupportSupportCompat2531Library - Prepare com.android.support:support-compat:25.3.1
app:prepareComAndroidSupportSupportCoreUi2531Library - Prepare com.android.support:support-core-ui:25.3.1
app:prepareComAndroidSupportSupportCoreUtils2531Library - Prepare com.android.support:support-core-utils:25.3.1
app:prepareComAndroidSupportSupportFragment2531Library - Prepare com.android.support:support-fragment:25.3.1
app:prepareComAndroidSupportSupportMediaCompat2531Library - Prepare com.android.support:support-media-compat:25.3.1
app:prepareComAndroidSupportSupportV42531Library - Prepare com.android.support:support-v4:25.3.1
app:prepareComAndroidSupportSupportVectorDrawable2531Library - Prepare com.android.support:support-vector-drawable:25.3.1
app:prepareComAndroidSupportTransition2531Library - Prepare com.android.support:transition:25.3.1
app:prepareComAndroidVolleyVolley100Library - Prepare com.android.volley:volley:1.0.0
app:prepareComCrashlyticsSdkAndroidAnswers1312Library - Prepare com.crashlytics.sdk.android:answers:1.3.12
app:prepareComCrashlyticsSdkAndroidBeta124Library - Prepare com.crashlytics.sdk.android:beta:1.2.4
app:prepareComCrashlyticsSdkAndroidCrashlytics267Library - Prepare com.crashlytics.sdk.android:crashlytics:2.6.7
app:prepareComCrashlyticsSdkAndroidCrashlyticsCore2316Library - Prepare com.crashlytics.sdk.android:crashlytics-core:2.3.16
app:prepareComFacebookAndroidFacebookAndroidSdk4161Library - Prepare com.facebook.android:facebook-android-sdk:4.16.1
app:prepareComGoogleAndroidGmsPlayServicesAnalytics1026Library - Prepare com.google.android.gms:play-services-analytics:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAnalyticsImpl1026Library - Prepare com.google.android.gms:play-services-analytics-impl:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAuth1026Library - Prepare com.google.android.gms:play-services-auth:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAuthBase1026Library - Prepare com.google.android.gms:play-services-auth-base:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesBase1026Library - Prepare com.google.android.gms:play-services-base:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesBasement1026Library - Prepare com.google.android.gms:play-services-basement:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesCast1026Library - Prepare com.google.android.gms:play-services-cast:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesLocation1026Library - Prepare com.google.android.gms:play-services-location:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesMaps1026Library - Prepare com.google.android.gms:play-services-maps:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesTagmanagerV4Impl1026Library - Prepare com.google.android.gms:play-services-tagmanager-v4-impl:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesTasks1026Library - Prepare com.google.android.gms:play-services-tasks:10.2.6
app:prepareComGoogleFirebaseFirebaseAnalytics1026Library - Prepare com.google.firebase:firebase-analytics:10.2.6
app:prepareComGoogleFirebaseFirebaseAnalyticsImpl1026Library - Prepare com.google.firebase:firebase-analytics-impl:10.2.6
app:prepareComGoogleFirebaseFirebaseAppindexing1024Library - Prepare com.google.firebase:firebase-appindexing:10.2.4
app:prepareComGoogleFirebaseFirebaseCommon1026Library - Prepare com.google.firebase:firebase-common:10.2.6
app:prepareComGoogleFirebaseFirebaseCore1026Library - Prepare com.google.firebase:firebase-core:10.2.6
app:prepareComGoogleFirebaseFirebaseIid1026Library - Prepare com.google.firebase:firebase-iid:10.2.6
app:prepareComGoogleFirebaseFirebaseMessaging1026Library - Prepare com.google.firebase:firebase-messaging:10.2.6
app:prepareComMindorksPlaceholderview027Library - Prepare com.mindorks:placeholderview:0.2.7
app:prepareDebugAndroidTestDependencies
app:prepareDebugDependencies
app:prepareDebugUnitTestDependencies
app:prepareInfoHoang8fAndroidSegmented105Library - Prepare info.hoang8f:android-segmented:1.0.5
app:prepareIoFabricSdkAndroidFabric1316Library - Prepare io.fabric.sdk.android:fabric:1.3.16
app:prepareNoNordicsemiAndroidLog211Library - Prepare no.nordicsemi.android:log:2.1.1
app:prepareNoNordicsemiAndroidSupportV18Scanner100Library - Prepare no.nordicsemi.android.support.v18:scanner:1.0.0
이 경우 25.3.1을 대상으로하고 있었고이 명령을 실행할 때 다른 버전을 대상으로하는 일부 종속성이있었습니다. 트릭은 이전 버전을 대상으로하는이 목록의 종속성을 식별하고 Gradle에서 종속성의 최신 버전을 가져와이를 재정의하는 것입니다.
나는 같은 문제가 있지만이 세 줄을 추가하여 해결했습니다.
implementation 'com.android.support:design:27.1.1'
implementation "com.android.support:customtabs:27.1.1"
implementation 'com.android.support:mediarouter-v7:27.1.1'
이제 모든 것이 완벽하게 작동합니다.
이 경고를 수정하는 흐름은 다음과 같습니다.
build.gradle
android {
compileSdkVersion ... // must same version (ex: 26)
...
}
dependencies {
...
compile 'any com.android.support... library' // must same version (ex: 26.0.1)
compile 'any com.android.support... library' // must same version (ex: 26.0.1)
...
compile ('a library B which don't use 'com.android.support...' OR use SAME version of 'com.android.support'){
// do nothing
}
...
compile ('a library C which use DIFFERENT 'com.android.support...' (ex:27.0.1) {
// By default, if use don't do anything here your app will choose the higher com.android.support... for whole project (in this case it is 27.0.1)
// If you want to use 26.0.1 use
exclude group: 'com.android.support', module: '...' (ex module: 'appcompat-v7')
exclude group: 'com.android.support', module: 'another module'
...
// If you want to use 27.0.1 do
Upgrade `compileSdkVersion` and all 'com.android.support' to 27.0.1.
(It may be a good solution because the best practice is always use latest `compileSdkVersion`.
However, use 26 or 27 is base on you for example higher library may have bug)
}
}
dependencies
앱의 모든 라이브러리 를 보고 확인 하려면
터미널을 열고 실행하십시오../gradlew app:dependencies
dependencies
앱에서 특정 라이브러리 를 보려면 여기 자습서를 따르십시오.- Gradle에서 특정 종속성의 종속성을 제외하는 방법
도움이되기를 바랍니다.
새로운 버전의 android studio 3.x로 매우 간단합니다.
현재 버전보다 낮은 버전을 복사하고 현재 버전과 동일한 버전 번호로 명시 적으로 추가하면됩니다.
예
27.1.1, 27.1.0 버전을 찾았습니다. 예로는 com.android.support:animated-vector-drawable:27.1.1 및 com.android.support:exifinterface:27.1.0이 있습니다.
버전을 복사하고 사용중인 현재 버전과 같도록 com.android.support:exifinterface:27.1.0
변경하고 com.android.support:exifinterface:27.1.1
다음과 같이 gradle 종속성에 추가하십시오.
implementation 'com.android.support:exifinterface:27.1.1'
참고 : 완료되면 편집기 상단에서 지금 동기화 를 클릭하는 것을 잊지 마십시오 .
프로젝트의 외부 라이브러리를 열면 해당 라이브러리를 언급하지 않았지만 일부 라이브러리가 여전히 이전 버전을 사용하고 있음을 알 수 있으므로 문제를 해결할 특정 라이브러리 버전을 사용하는 것이 좋습니다.
Android Support Repository를 (수정 : 44.0.0)으로 업데이트합니다. 그런 다음 Android SDK 도구와 에뮬레이터에서 sdk 관리자> SDK 도구에서 최신 버전 25.3.1로 내 문제를 해결했습니다.
'developer tip' 카테고리의 다른 글
jQuery 비활성화 / 활성화 제출 버튼 (0) | 2020.09.29 |
---|---|
Maven Snapshot은 정확히 무엇이며 왜 필요한가요? (0) | 2020.09.29 |
식별 관계와 비 식별 관계의 차이점은 무엇입니까? (0) | 2020.09.29 |
MySQL에서 '존재하지 않는 경우 삽입'하는 방법은 무엇입니까? (0) | 2020.09.29 |
터미널에서 현재 날짜와 시간을 가져오고 터미널에서 사용자 지정 명령을 설정하는 방법은 무엇입니까? (0) | 2020.09.29 |