最近升级到Android Studio 3.1,同时我正在尝试Android P预览版。
我在编译时收到以下错误:
所有 com.android.support 库必须使用完全相同的版本规范(混合版本可能会导致运行时崩溃(。找到版本 28.0.0-alpha1、26.1.0。示例包括com.android.support:animated-vector-drawable:28.0.0-alpha1和com.android.support:support-media-compat:26.1.0 less...(Ctrl+F1( 库或工具和库的某些组合不兼容,或者可能导致错误。其中一个不兼容是编译的Android支持库版本不是最新版本(特别是低于目标SdkVersion的版本(。
但我在任何地方都看不到任何26.1.0
实例。 我的毕业生中只有:
implementation 'com.android.support:appcompat-v7:28.0.0-alpha1'
implementation 'com.android.support:design:28.0.0-alpha1'
我尝试过清除缓存、重建应用程序等。 但错误仍然存在。
您需要通过将冲突的库添加到依赖项块来覆盖冲突的库
dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0-alpha1'
implementation 'com.android.support:customtabs:28.0.0-alpha1'
implementation 'com.android.support:support-vector-drawable:28.0.0-alpha1'
implementation 'com.android.support:support-media-compat:28.0.0-alpha1'
implementation 'com.android.support:support-v4:28.0.0-alpha1'
上述警告并非特定于媒体兼容依赖项。他们只是添加了示例来解释问题。通过为我添加 v4 lib 解决了这个问题。
implementation 'com.android.support:support-v4: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:support-media-compat:28.0.0'
您需要通过将冲突的库添加到依赖项块来覆盖冲突的库。例如,从错误日志中,您将找到以下内容:
找到版本 28.0.0-alpha1、26.1.0。示例包括 com.android.support:animated-vector-drawable:28.0.0-alpha1 和 com.android.support:support-media-compat:26.1.0 收起...
您可以通过添加如下所示的库来消除错误:
dependencies {
implementation 'com.android.support:animated-vector-drawable:28.0.0-alpha1`
implementation 'com.android.support:support-media-compat:28.0.0-alpha1`
}
将应用程序连接到Firebase时,出现了此错误。
无需添加任何内容。
只需将鼠标光标放在错误行(下方(上,然后按 Alt+Enter
(implementation 'com.android.support:appcompat-v7:28.0.0')
在列表中输入第一个选项。(无检查(
之后它看起来像这样,
//noinspection GradleCompatible
implementation 'com.android.support:appcompat-v7:28.0.0'
对于版本26.1.0
,某些依赖项(也许是 playLicensing (至少对 support-media-compat
具有传递依赖性。
要解决此问题:
-
确定"外部库"中显示的早于
28.0.0-alpha1
的每个支持库项目。根据错误,那些较旧的应该都是26.1.0
,并且至少是support-media-compat
。 -
对于其中的每一个,将您自己的
implementation
行添加到依赖项中,请求该工件,但对于28.0.0-alpha1
。这将导致 Gradle 使用较新的工件,这恰好是您想要的。 -
希望依赖于这些旧工件的任何东西都能与较新的工件一起生存。
因此,至少要添加:
implementation 'com.android.support:support-media-compat:28.0.0-alpha1'
就我而言,我通过在错误行下方添加它来解决它。
implementation 'com.android.support:support-media-compat:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
添加 build.grad 的依赖项 (Module.app(
dependencies {
//noinspection GradleCompatible
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:animated-vector-drawable:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
}
就我而言,添加 support-v4 帮助我摆脱了警告。
dependencies {
implementation 'com.android.support:appcompat-v7: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'
// other dependencies
}
您是否在项目中使用 Firebase?使用 Firebase 核心或 Firebase 应用索引似乎是导致此问题的原因。我遇到了同样的问题,但是评论Firebase软件包会使错误消失
// implementation 'com.google.firebase:firebase-core:16.0.8'
// implementation 'com.google.firebase:firebase-ads:17.2.0'
// implementation 'com.google.firebase:firebase-appindexing:17.1.0'
您的 gradle 文件具有以下依赖项。将其添加到您的应用程序级别 build.gradle。
implementation 'com.android.support:appcompat-v7:28.0.0-alpha1'
implementation 'com.android.support:mediarouter-v7:28.0.0-alpha1'
implementation 'com.android.support:support-vector-drawable:28.0.0-alpha1'
implementation 'com.android.support:support-v4:28.0.0-alpha1'