【问题标题】:Error: Program type already present: android.support.v4.os.ResultReceiver错误:程序类型已存在:android.support.v4.os.ResultReceiver
【发布时间】:2018-06-23 00:43:37
【问题描述】:

当我尝试将我的应用连接到 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'

【问题讨论】:

  • 检查您的 gradle.properties 项目文件以包含 android.useAndroidX=true 和 android.enableJetifier=true。
  • 非常感谢!!这解决了问题!

标签: android firebase android-studio


【解决方案1】:

刚刚在 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 数据绑定库进入的一些 app-compat 依赖项进入。

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

android.useAndroidX=true
android.enableJetifier=true

【讨论】:

    【解决方案2】:

    该错误是因为项目中存在重复的库,这是由于使用了 androidx 以及旧的支持库。您可以手动浏览代码库并更改必要的导入行,或者让 Android Studio 完成工作:

    在 Android Studio 中,右键单击 app director。重构 -> 迁移到 Android X

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多