Android & iOS Native SDK 编译与集成常见问题

Hi everyone,
 
本文搜集了大家在 Android & iOS Native SDK 的编译与集成过程中的容易遇到的一些常见问题,方便大家检索定位。如果你在编译集成中还遇到了其它问题,欢迎随时留言和我联系。
 
在大家开始编译和集成之前,请确保已经认真阅读了 Agora文档中心 的相关文档。
 
BTW ,常有人问我通信与直播 SDK 的差别。其实 SDK 是一个,区别主要在于 SDK 会在 setChannelProfile 这一步设置频道模式,并进行隔离,然后直播会有一个 setClientRole 为主播/观众的概念。
而语音 + 直播 SDK 与视频 + 直播 SDK 相比,前者没有视频功能,包会小一些。
 
Android
 
在进行编译前,请先注意以下几点:
A. 确保是从官网而非其它任何途径下载的 SDK ;
B. 下载完成后,不要单独移动 samples 文件夹,因为与它同级的 libs 文件夹中的文件会被引用到,导致路径错误;
C. 开始编译前,请先配置好 NDK ;
D. 项目文件所在的目录不要太深。
 
1. A problem occured configuring project ':App'.
 
安卓_ndk.png
NDK 未配置时,AS 会报如图的错误。
解决方法:请先配置好 NDK 再开始编译(所以上面都已经讲过了呀!)。

2. LOCAL_SRC_FILES points to a missing file
安卓_points_to_a_missing_file.png

引用路径错误。
解决方法:请确保下载 SDK 之后没有单独移动 samples 文件夹,仔细阅读 集成通讯 - Android 中各库正确的放置路径并检查 .mk 文件中的路径信息。路径错误并不是 Agora SDK 本身导致的,请善用 Google (or Baidu if you'd like to) 了解相关信息。
 
3. Java.lang.UnsatisfiedLinkError: dlopen failed: "HDACEngine.so"

安卓_HDAC.png

路径错误的一种,某些 64 位设备上会出现这个问题。
解决方法:请参考文档 可以在Android设备上做64位兼容吗?
 
4. unauthorized access to "libcrypto.so"

安卓_libcrypto弹窗.png
可能会出现如图的弹窗。
解决方法:libcrypto.so 为系统加密库。如果需要使用加密功能,请参考文档 加密数据 加入加密库。如果不需要加密功能,可以不加入加密库,但在部分Android7.0机型上会出现上述加密库加载失败的问题,可以加入SDK内置加密库libagora-crypto.so来规避。我们已经在 1.11版本中进行了修复,请更新至 1.11 版。
iOS 如果出现 AgoraRtcCryptoLoader.framework 相关的问题,也请参考以上文档。
 
5. 组件缺失
请仔细查看 SDK 包中的各组件。如果包中有该组件却无法引用到,通常是路径问题,参见问题 2 和问题 3;
如果缺失的组件为 libvideoprp.so/videoprp.jar/AgoraYuvEnhancer.so, 则为美颜组件缺失。如果需要美颜功能,请前往官网下载中心下载组件。
 
iOS
 
iOS 上目前提供 Swift 与 Objective-C (下载)两种语言的 SDK ,但之后的开发重心会在 Swift 上,请 OC 开发者知悉。
 
1. AgoraRtcEngineKit.framework 缺失
解决方法:该问题通常只出现在 OC 版 SDK 中。如果遇到,请前往官网下载中心下载 Swift 版本的 SDK ,从中拷贝出这个库即可。
 
2. videoprp.framework 缺失
解决方法:该组件为美颜组件。如果需要美颜功能,请前往官网下载中心下载组件。
 
3. linker error

ios_libresolv.png

如果 Xcode 报如图的错误,是因为集成 iOS SDK 时,新增了一个依赖库 libresolv.tbd 用于去除对 dlopen 和 dlsym 的依赖。
解决方法:请仔细阅读 集成通信 - iOS
 
最后祝大家早日上线啦!
 
 

1 个评论

好文

要回复文章请先登录注册