Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当两个库坚持使用同一名称空间时,该怎么办?_Android_Gradle_Webrtc_Aar - Fatal编程技术网

Android 当两个库坚持使用同一名称空间时,该怎么办?

Android 当两个库坚持使用同一名称空间时,该怎么办?,android,gradle,webrtc,aar,Android,Gradle,Webrtc,Aar,在我的Android项目中,我有两个库都依赖于WebRTC。这两个库都强制包含WebRTC。这两个库都不重命名WebRTC库(尽管有自定义)。两位开发人员都坚持WebRTC必须以这种方式强制包含(我对此深表怀疑) 如何解决此依赖关系冲突 我已经尝试过这里描述的解决方案: 但这特别需要依赖项是可传递的。在我的例子中,哪些硬包含的库不是。如果我调用gradlew dependenciesWebRTC,它甚至不会出现在该列表中。但在编译时,我得到了类似于多个dex文件定义Lorg/webrtc/Vid

在我的Android项目中,我有两个库都依赖于WebRTC。这两个库都强制包含WebRTC。这两个库都不重命名WebRTC库(尽管有自定义)。两位开发人员都坚持WebRTC必须以这种方式强制包含(我对此深表怀疑)

如何解决此依赖关系冲突

我已经尝试过这里描述的解决方案:
但这特别需要依赖项是可传递的。在我的例子中,哪些硬包含的库不是。如果我调用
gradlew dependencies
WebRTC,它甚至不会出现在该列表中。但在编译时,我得到了类似于
多个dex文件定义Lorg/webrtc/VideoFileRenderer$2的错误其中“VideoFileRenderer”是每次编译时与org.webrtc不同的文件。清理生成树或缓存并没有解决任何问题

有关图书馆包括:

  • 阿霍伊会议:
  • TokBox:

这两个库在运行时不会同时使用。我只需要在编译时包含这两个。此外,每个用户在注册时仅进行一次视频通话以确定自己的身份。

排除其中一个用户的WebRTC

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


我不认为你能做什么,除非你能重新编译那些库。当WebRTC类(f.e.com.ahoy.org.WebRTC)构建WebRTC时,您可以使用这些提供程序(ahoy和tokbox)为它们使用自定义名称空间,以便它们之间没有冲突。感谢您的回复。很难相信没有其他解决办法。毕竟,考虑到库的数量,我不可能是第一个遇到这个问题的开发人员。不是硬编码的。
  compile('io.socket:socket.io-client:0.9.0') {
        // excluding org.json which is provided by Android
        exclude group: 'org.json', module: 'json'
    }