当两个库坚持使用相同的命名空间时该怎么办?

时间:2018-03-30 14:35:37

标签: android gradle webrtc aar

在我的Android项目中,我有两个依赖WebRTC的库。两个库都强有力地包含了WebRTC。两个图书馆都没有重命名WebRTC库(尽管有自定义)。两位开发人员都坚持认为WebRTC必须以这种方式被强制包含(我对此非常怀疑)。

如何解决此依赖冲突?

我已经尝试过如下所述的解决方案:
https://medium.com/mindorks/avoiding-conflicts-in-android-gradle-dependencies-28e4200ca235 但这特别需要依赖关系是可传递的。在我的案例中哪些硬包含的库不是。如果我致电gradlew dependencies,WebRTC甚至不会出现在该列表中。但是在编译时,我得到的错误如Multiple dex files define Lorg/webrtc/VideoFileRenderer$2;其中" VideoFileRenderer"每次编译时都是与org.webrtc不同的文件。清理构建树或缓存没有解决任何问题。

有问题的图书馆是:

两个库从不在运行时同时使用。我只需要在编译时包含两者。此外,每个用户仅在注册时进行一次视频通话以识别自己。

1 个答案:

答案 0 :(得分:0)

排除其中一个的WebRTC

从我的项目中排除的一个示例(显然更改了lib的名称)

  compile('io.socket:socket.io-client:0.9.0') {
        // excluding org.json which is provided by Android
        exclude group: 'org.json', module: 'json'
    }