Answers:
由于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版本设置为AndroidP。
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实现不匹配,您必须像这样做,我才有28个库
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处使用“任何”,则应发生此错误,因此请尝试全部使用匹配库。
也许为时已晚,但我找到了解决方案:
您必须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
就我而言,我尝试过尝试File
> Invalidate Cache/Restart
并且对我有用。
compileSdkVersion 27
和compileSdkVersion 28
,更改compileSdkVersion
为28
,解决了这个问题。