错误:程序类型已存在:android.support.v4.os.ResultReceiver

时间:2018-06-23 00:43:38

标签: android firebase android-studio

当我尝试将我的应用程序连接到Firebase时遇到此错误。

以下是app / build.gradle中的依赖项

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.0-alpha1'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'

    implementation 'com.google.firebase:firebase-core:16.0.0'
}

apply plugin: 'com.google.gms.google-services'

2 个答案:

答案 0 :(得分:4)

只需在Android Studio中启动一个针对最新Android版本的新项目。 Studio使用androidx生成了所有依赖项,但是我自己通过在build.gradle文件中添加以下代码块来添加了数据绑定:

android {
    dataBinding {
    enabled = true
    }
}

但是后来我开始看到这些错误:

Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver

通过检查Gradle依赖关系树,我了解到MyResultReceiver是通过androidx.core依赖关系引入的,而且还通过非androidx数据绑定库引入的与应用程序兼容的依赖关系引入的。

@ kamarudeen-ayankunbi的答案似乎确实解决了这个问题。如果您阅读文档(https://developer.android.com/topic/libraries/support-library/androidx-overview),则Google事件会指出,在Android Studio中启动一个针对最新API的新项目并使用androidx之后,您应该将这两个属性添加到gradle.properties文件中:

android.useAndroidX=true
android.enableJetifier=true

答案 1 :(得分:1)

该错误是由于在项目中存在重复的库,这是由于将androidx与较早的支持库一起使用的结果。您可以手动浏览代码库并更改必要的导入行,或者让Android Studio来完成工作:

在Android Studio中,右键单击应用程序导演。重构->迁移到Android X