关于导入百度导航SDK报错以及解决方案

1.由于工程中使用的百度地图的其他SDK在加入百度导航SDK时报如下错误:

Undefined symbols for architecture arm64:

  "_OpenSSL_add_all_algorithms", referenced from:

      _baidu_vi::BNCVSocketMan::BNCVSocketMan() in libbaiduNaviSDK.a(BNVSocket.o)

  "_SSL_CTX_set_options", referenced from:

      _baidu_vi::BNCVSocketMan::BNCVSocketMan() in libbaiduNaviSDK.a(BNVSocket.o)

ld: symbol(s) not found for architecture arm64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

解决方案:只需要把导航的SDK放在其他百度SDK后面引用就好了,如:


2.发起导航时报TTS授权失败

解决方案:

(1)确保已在百度语音管理平台(http://yuyin.baidu.com/app)添加了应用,开通语音合成服务,并且也填写过包名

(2)确保在初始化导航时调用过以下代码:

//TTS在线授权
 [BNCoreServices_Instance setTTSAppId:@"10224308"];

(3)确保将baiduNaviSDK.bundle,baiduNaviSDK.xcassets这两个文件夹加入Copy Bundle Resources条目下,如:

经过以上解决方案,我已能正常在工程中使用导航SDK了
思考:
导入三方SDK的时候最好还是先把将要导入的三方SDK复制到工程内,再使用"Add File to...",最后需检查要导入的三方库是否在"Link Binary With Libaries"中找到相应的.a或则.framework文件,以及在"Copy Bundle Resources"中是否能找到相应三方库对应的资源文件如:.bundle文件,如果没有需要加入。

猜你喜欢

转载自blog.csdn.net/u011656331/article/details/78201764
今日推荐