Unity Plugin 常见问题
1. 集成SDK后,编译报错ld: symbol(s) not found for architecture arm64
,是什么原因,如何解决?
如果集成后编译报如下错误:
则说明没有成功集成并链接静态库
libBuglyBridge.a
。开发者需检查
Xcode
工程的Link Binary With Libraries
配置中是否已添加静态库libBuglyBridge.a
。
2. 初始化SDK后,为什么仍然无法捕获上报C#异常?
如果无法捕获上报C#异常,可以可以按照下面方式进行排查:
检查是否有其他存在注册
Application.RegisterLogCallback(LogCallback)
的逻辑,由于系统默认的LogCallback
是单播实现, 所以只能维持一个回调实例,你可以调用BuglyAgent.RegisterLogCallback(BuglyAgent.LogCallbackDelegate)
方法来替代日志回调的注册。检查对应平台的SDK组件是否已集成到项目。
3. 为什么发生C#异常后,应用直接崩溃?
如果遇到此场景,可以把脚本中
InitWithAppId
注释,保留EnableExceptionHandler
方法调用,并在对应的Android或iOS工程中初始化SDK的组件。
4. Unity 4.x 的 Android项目没有上报,是什么原因?
Unity 4.x 的 Android项目需要BuglyPlugin/libs目录下的内容剪切到plugin/android目录下。 因为4.x只识别plugin目录下的jar包和so文件。
5. Unity android项目需要配置符号表吗?
1) Unity项目的Android工程生成的Java代码只有几个入口类,没有proguard混淆必要,所以无需配置符号表(即mapping信息)
2) Unity项目的Android工程中默认加载的几个Native库(libmono.so,libunity.so等)没有的debug版本,所以开发者也无法获得对应的符号信息进行配置。
注意:
如果开发者有自己开发独立的功能组件(.jar或.so)集成到Unity项目中,需配置相应的符号表信息(开启了“Development Build”选项,development文件夹里面的就是debug版本的so,可以用Bugly的符号表工具生成符号表文件并上传到版本管理)