这个错误是由于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'
使用加号与库一起使用会使构建过程难以收集所需的确切版本,从而使系统不稳定,因此应该避免使用。
我曾经遇到相同的问题。以下主题帮助我解决了这个问题。只需将您的编译SDK版本设置为Android P即可。
https://dev59.com/qFUM5IYBdhLWcg3wMeAk#49172361
我通过选择以下内容来解决此问题:
API 27+ : Android API 27,P preview (Preview)
在项目结构设置中。下图显示了我的设置。构建应用时出现的13个错误已经消失。
compileSdkVersion
和buildToolsVersion
设置为28,并将您的targetSdkVersion
保留在较低版本即可。 - Kirill Karmazin在处理一个包含多个模块的应用时,我遇到了同样的问题,请确保当你将一个模块的compileSdkVersion
和targetSdkVersion
增加到28+时,你也要对其他模块执行相同操作。
一个模块运行在compileSdkVersion 29
和 targetSdkVersion 29
上,而另一个模块则运行在compileSdkVersion 27
和 targetSdkVersion 27
上。
将第二个模块的编译和目标SDK版本也改为29后,我的问题得到了解决。希望这能帮助有需要的人。
检查您的依赖项是否在版本中使用了+
。某些依赖关系可能正在使用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 的内容不同,力的依赖关系可能需要不同。
./gradlew
等。 - John Perry也许现在有点晚了,但我找到了解决办法:
您需要在 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'
}
尝试将compileSdkVersion更改为:compileSdkVersion 28
在我的情况下,我在更新compileSdkVersion到29时,在AndroidStudio 4.1.1中遇到了这个错误。
如果您的build.gradle文件中有依赖项目,您需要在依赖项目的build.gradle文件中更新相同的compileSdkVersion。
步骤:
对我来说有效 :)
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'
compileSdkVersion 27
和compileSdkVersion 28
,将compileSdkVersion
更改为28
后,问题得到解决。 - Blasanka