android studio错误混合版本可能导致运行时崩溃

时间:2017-03-22 19:14:43

标签: android gradle dependencies

添加' com.firebaseui后,我收到错误:firebase-ui-auth:1.0.0'依赖。当我删除' com.firebaseui:firebase-ui-auth:1.0.0'时,错误消失了。从gradle。代码和图片包括在下面 请帮忙

apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
    applicationId "com.example.a.chatapp"
    minSdkVersion 22
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.0'



compile 'com.firebaseui:firebase-ui:0.3.1'






compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'

enter image description here

6 个答案:

答案 0 :(得分:12)

这里存在错误!

compile 'com.android.support:appcompat-v7:25.3.1'
  

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。发现版本25.3.1,25.3.0。示例包括'com.android.support:animated-vector-drawable:25.3.0'和'com.android.support:mediarouter-v7:24.0.0'

看到这个例子 包括'com.android.support:animated-vector-drawable:25.3.0''com.android.support:mediarouter-v7:24.0.0'

只需在依赖项中添加这些代码,确保版本相同。

只需更新build.gradle文件: -

compile 'com.android.support:animated-vector-drawable:25.3.1'
compile 'com.android.support:mediarouter-v7:25.3.1'

答案 1 :(得分:5)

问题是您使用相同依赖项的两个(或更多)不同版本。第一个在gradle文件中指定,其他依赖项由您使用的库使用(在本例中可能是firebase-ui)。

这里有更多选择。首先,您应该尝试更新firebase-ui依赖项。他们通常会更新他们的支持权限,所以我猜他们在他们当前的主分支中使用与您相同版本的支持库(我猜你使用的是最新的com.android.support:appcompat'版本,对?)。 如果firebase-auth的最新版本没有使用当前版本的支持库,您可以降级支持库版本,以便它们匹配它们,您可以创建自己的firebase-auth分支并在其上保持更新拥有。

答案 2 :(得分:3)

您需要做的是检查哪个库依赖项版本存在冲突 您可以使用Run androidDependancies跟踪该库,例如: AndroidDependacies Report
然后找到相互冲突的依赖项,并在gradle文件中添加更新版本的依赖项。

答案 3 :(得分:2)

build.gradle (Module:app)文件的末尾添加以下代码行:

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '27.1.1'
            }
        }
    }
}

您必须从' 25.3.1'更改useVersion到你当前的编译/实现SDK版本。

注意:

如果您仍在build.gradle文件中使用compile,请将其替换为implementationapi,因为编译支持将于2018年底正式结束。

有关详细信息,请参阅:

Error: when I replace compile with implementation in gradle(dependency)

What's the difference between implementation and compile in gradle

答案 4 :(得分:0)

投入

// noinspection GradleCompatible

解决了我的问题

答案 5 :(得分:-1)

好吧,我读过评论,其中一些很好,但这是简单的解决方案 只需跟随视频

mixing version can lead to runtime crashes

转到您的gradle脚本-> build gradle(Module:app),然后根据需要添加尽可能多的实现。

在这里很难解释,我只是添加了链接以便于使用。