Android Studio 3.1:混合版本可能会导致运行时崩溃



最近升级到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'

最新更新