我在Android Studio中的Android应用程序中添加了以下两个库(ExoPlayerGeckoView):

dependencies {
    ...
    implementation 'com.google.android.exoplayer:exoplayer:2.11.1'
    implementation ('org.mozilla.geckoview:geckoview-beta:73.0.20200109090448')
    ...
}

当我开始构建项目时,我意识到这些库存在冲突(Gradle Sync成功):
Duplicate class com.google.android.exoplayer2.BaseRenderer found in modules jetified-exoplayer-core-2.11.1-runtime.jar (com.google.android.exoplayer:exoplayer-core:2.11.1) and jetified-geckoview-beta-73.0.2020...-runtime.jar (org.mozilla.geckoview:geckoview-beta:73.0.202001...)
Duplicate class com.google.android.exoplayer2.... found in modules jetified-exoplayer-core-2.11.1-runtime.jar (com.google.android.exoplayer:exoplayer-core:2.11.1) and jetified-geckoview-beta-73.0.2020...-runtime.jar (org.mozilla.geckoview:geckoview-beta:73.0.2020...)

我遇到了很多类似上面的错误。所以我决定从ExoPlayer中排除GeckoView组(因为我已经有了):
...
implementation ('org.mozilla.geckoview:geckoview-beta:73.0.20200109090448') {
    exclude group: 'com.google.android.exoplayer2', module: 'jetified-geckoview-beta-73.0.20200109090448-runtime.jar'
}
...

我再次同步(同步再次成功)并开始构建,但没有效果,错误再次发生。

我该怎么办?

最佳答案

从重复的消息来看,问题在于这些类可以在geckoview-beta运行时jar本身以及exoplayer jar中找到。

因此,这不是传递句的冲突,而是geckoview-betaexoplayer之间的直接冲突。

您必须通过删除两个库之一或找到未将类嵌入geckoview-beta包中的com.google.android.exoplayer2版本来解决此问题。

10-06 11:27