답변:
이 오류는 일치하지 않는 compileSdkVersion
라이브러리 버전으로 인해 발생합니다 .
예를 들면 :
compileSdkVersion 27
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
또한 다음과 같이 라이브러리와 함께 + 기호를 사용하지 마십시오.
implementation 'com.android.support:appcompat-v7:26.+'
이와 같은 정확한 라이브러리 버전을 사용하십시오.
implementation 'com.android.support:appcompat-v7:26.1.0'
라이브러리에 + 기호를 사용하면 빌드 프로세스에서 필요한 정확한 버전을 수집하기가 어려워 시스템이 불안정 해 지므로 권장하지 않습니다.
AndroidX 용으로 마이그레이션되고이 오류가 발생하는 경우 컴파일 SDK를 Android 9.0 (API 레벨 28) 이상으로 설정해야합니다.
나는 똑같은 문제가 있었다. 다음 스레드가 문제를 해결하는 데 도움이되었습니다. Compile SDK 버전을 Android P로 설정하기 만하면됩니다.
https://stackoverflow.com/a/49172361/1542720
다음을 선택하여이 문제를 해결했습니다.
API 27+ : Android API 27, P 미리보기 (미리보기)
프로젝트 구조 설정에서. 다음 이미지는 내 설정을 보여줍니다. 앱을 빌드하는 동안 발생한 13 개의 오류가 사라졌습니다.
compileSdkVersion
및 buildToolsVersion
28과를두고 targetSdkVersion
낮은 버전에서
+
버전에서의 사용에 대한 종속성을 확인하십시오 . 일부 종속성은 com.android.support:appcompat-v7:+
. 이로 인해 새 버전이 출시 될 때 문제가 발생하고 기능이 손상 될 수 있습니다.
이에 대한 해결책은 사용 com.android.support:appcompat-v7:{compileSdkVersion}.+
하거나 전혀 사용하지 않고 +
정식 버전 (예 :)을 사용하는 것 com.android.support:appcompat-v7:26.1.0
입니다.
이에 대한 build.gradle 파일에 줄이 표시되지 않으면 android studio 터미널에서 실행하여 각 종속성이 사용하는 개요를 제공하십시오.
gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
(androidtest 종속성 포함)
또는
gradlew -q dependencies app:dependencies --configuration debugCompileClasspath
(디버그에 대한 일반적인 종속성)
결과적으로 이것에 가깝게 보이는
------------------------------------------------------------
Project :app
------------------------------------------------------------
debugCompileClasspath - Resolved configuration for compilation for variant: debug
...
+--- com.android.support:appcompat-v7:26.1.0
| +--- com.android.support:support-annotations:26.1.0
| +--- com.android.support:support-v4:26.1.0 (*)
| +--- com.android.support:support-vector-drawable:26.1.0
| | +--- com.android.support:support-annotations:26.1.0
| | \--- com.android.support:support-compat:26.1.0 (*)
| \--- com.android.support:animated-vector-drawable:26.1.0
| +--- com.android.support:support-vector-drawable:26.1.0 (*)
| \--- com.android.support:support-core-ui:26.1.0 (*)
+--- com.android.support:design:26.1.0
| +--- com.android.support:support-v4:26.1.0 (*)
| +--- com.android.support:appcompat-v7:26.1.0 (*)
| +--- com.android.support:recyclerview-v7:26.1.0
| | +--- com.android.support:support-annotations:26.1.0
| | +--- com.android.support:support-compat:26.1.0 (*)
| | \--- com.android.support:support-core-ui:26.1.0 (*)
| \--- com.android.support:transition:26.1.0
| +--- com.android.support:support-annotations:26.1.0
| \--- com.android.support:support-v4:26.1.0 (*)
+--- com.android.support.constraint:constraint-layout:1.0.2
| \--- com.android.support.constraint:constraint-layout-solver:1.0.2
(*) - dependencies omitted (listed previously)
버전 변경을 제어 할 수없는 경우 특정 버전을 사용하도록 강제하십시오.
configurations.all {
resolutionStrategy {
force "com.android.support:appcompat-v7:26.1.0"
force "com.android.support:support-v4:26.1.0"
}
}
강제 종속성은 28.0.0으로 설정되는 항목에 따라 달라야 할 수 있습니다.
compileSdkVersion을 다음과 같이 변경하십시오. compileSdkVersion 28
이것은 compileSdkVersion, buildToolsVersion 및 Dependecies 구현이 일치하지 않기 때문입니다.
compileSdkVersion 28
targetSdkVersion 28
buildToolsVersion 28.0.3
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
28 미만인 곳에서 Any를 사용하는 경우이 오류가 발생해야하므로 모두 일치 라이브러리를 시도하십시오.
여러 모듈이있는 응용 프로그램에서 작업하는 동안 동일한 문제가 발생 했으므로 다른 모듈에 대해서도 수행하는 모듈에서 compileSdkVersion
및 targetSdkVersion
값을 28+로 늘릴 때 확인하십시오 .
모듈은 실행 하였다 compileSdkVersion 29
및 targetSdkVersion 29
어플리케이션의 제 2 모듈이 실행되는 동안 compileSdkVersion 27
과 targetSdkVersion 27
.
두 번째 모듈을 SDK 버전 29로 컴파일하고 대상으로 변경하면 문제가 해결되었습니다. 이것이 누군가를 돕기를 바랍니다.
어쩌면 너무 늦었지만 해결책을 찾았습니다.
마지막으로-> build.gradle
중 하나 를 편집해야합니다 compileSdkVersion
(현재 28). 그렇게 :
android {
compileSdkVersion 28
defaultConfig {
applicationId "NAME_OF_YOUR_PROJECT_DIRECTORY"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
또는 구현 버전을 변경할 수 있습니다.
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
api 'com.android.support:design:27.+'
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
이 문제를 해결하려면 아래 표시된대로 종속성을 적용해야합니다.
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
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'
implementation 'com.android.support:support-v4:27.1.0'
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support:recyclerview-v7:27.1.0'
}
의 버전을 사용하지 마십시오.
v7 : 28.0.0-alpha1
나는 같은 문제에 직면했지만 compileSdkVersion의 버전을 29 인 최신 버전으로 변경하고 targetSdkVersion의 버전을 29 인 최신 버전으로 변경하여 문제를 성공적으로 해결했습니다.
gradile.build 파일로 이동하여 compilesdkversion 및 targetsdkversion을 변경합니다.
제 경우에는 File
> 시도해 보았습니다 Invalidate Cache/Restart
.
compileSdkVersion 27
및compileSdkVersion 28
변경compileSdkVersion
에28
문제를 해결.