2024/06/07 16:55:10
如何处理同时集成 RTM SDK 和 RTC SDK 遇到的问题?
问题描述
同时集成 2.2.0 及以上版本的 RTM SDK 和 4.3.0 及以上版本的 RTC SDK 时,IDE 中会出现如下报错信息:
- Java SDK:
Java
com.android.builder.merge.DuplicateRelativeFileException: More than one file was found with OS independent path 'lib/x86/libaosl.so'
- Objective-C SDK:
Objective-C
Unexpected duplicate tasks
Multiple commands produce <your_app_build_path>/Contents/Frameworks/aosl.framework/Versions/A'
问题原因
2.2.0 及以上版本的 RTM SDK 和 4.3.0 及以上版本的 RTC SDK 都用到了一个相同的库:
- Java SDK:
lib/x86/libaosl.so
- Objective-C SDK:
libs/aosl.xcframework
所以 IDE 在构建过程中会提示存在多个具有相同路径的文件。
解决方案
Java SDK
根据你的集成方式,在下方选择对应的解决方案:
- 使用 CDN
- 使用 Maven
- 在 SDK 包中手动删除如下文件:
lib/x86/libaosl.so
lib/x86_64/libaosl.so
lib/armeabi-v7a/libaosl.so
lib/arm64-v8a/libaosl.so
- 重新构建项目。
- 在
build.gradle
文件的android
节点中添加packagingOptions
节点,指定在构建过程中优先选择第一个匹配的文件:Groovyandroid {
// ...
packagingOptions {
pickFirst 'lib/x86/libaosl.so'
pickFirst 'lib/x86_64/libaosl.so'
pickFirst 'lib/armeabi-v7a/libaosl.so'
pickFirst 'lib/arm64-v8a/libaosl.so'
}
} - Gradle 文件同步完成后,重新构建项目。
Objective-C SDK
根据你的集成方式,在下方选择对应的解决方案:
- 使用 CDN
- 使用 Cocoapods
- 在 SDK 包中手动删除
libs/aosl.xcframework
文件。 - 重新构建项目。
- 成功运行
pod install
命令安装 SDK 后,在项目的/Pods/AgoraRtm
路径下手动删除aosl.xcframework
文件。 - 重新构建项目。