此处 iOS 高级地图 - setAppId 崩溃
HERE iOS Premium Map - setAppId Crash
我有一个奇怪的崩溃发生在我们的少数用户身上,但频率足以引起关注。
if(!NMAApplicationContext.isInitialized()) {
NMAApplicationContext.setAppId(HERE_MAP_APP_ID, appCode: HERE_MAP_APP_CODE, licenseKey: HERE_MAP_LICENSE_KEY)
}
任何可能导致此 init 调用失败的想法?
谢谢!
附加信息:
根据我们的 crashlytics 报告,
如果您需要更多信息,请告诉我。谢谢!
更新 - 我能够在 XCode 中捕捉到崩溃。堆栈跟踪:
frame #0: 0x00000001bd4520dc libsystem_kernel.dylib`__pthread_kill + 8
frame #1: 0x00000001bd4cb094 libsystem_pthread.dylib`pthread_kill$VARIANT$mp + 380
frame #2: 0x00000001bd3abea8 libsystem_c.dylib`abort + 140
frame #3: 0x0000000104724f60 NMAKit`___lldb_unnamed_symbol2248$$NMAKit + 476
我能够复制它。上面的代码是在前台调用的,看起来 isInitialized 调用在前台(不是新的应用程序启动)上返回 false,因此它试图重新初始化库……然后它崩溃了。希望对您有所帮助。
您的代码:
if(!NMAApplicationContext.isInitialized()) {
NMAApplicationContext.setAppId(HERE_MAP_APP_ID, appCode: HERE_MAP_APP_CODE, licenseKey: HERE_MAP_LICENSE_KEY)
}
因为 API 用法不正确而导致崩溃:
- 应在使用任何 HereSDK API 调用之前设置凭据。
- NMAApplicationContext doesn't provide the authorize verification methods, the NMAApplicationContext.isInitialized() checks whether map functionality is ready to use (whether engine already started). The NMAApplicationContext.isInitialized() is checked before custom configuration setup.
如何解决崩溃:
- 删除 NMAApplicationContext.isInitialized() if 语句
- 调用NMAApplicationContext.setAppId(HERE_MAP_APP_ID,appCode:HERE_MAP_APP_CODE,licenseKey:HERE_MAP_LICENSE_KEY)方法检查NMAApplicationContextErrorreturn值是否设置凭证成功了。
我有一个奇怪的崩溃发生在我们的少数用户身上,但频率足以引起关注。
if(!NMAApplicationContext.isInitialized()) {
NMAApplicationContext.setAppId(HERE_MAP_APP_ID, appCode: HERE_MAP_APP_CODE, licenseKey: HERE_MAP_LICENSE_KEY)
}
任何可能导致此 init 调用失败的想法?
谢谢!
附加信息:
根据我们的 crashlytics 报告,
如果您需要更多信息,请告诉我。谢谢! 更新 - 我能够在 XCode 中捕捉到崩溃。堆栈跟踪:
frame #0: 0x00000001bd4520dc libsystem_kernel.dylib`__pthread_kill + 8
frame #1: 0x00000001bd4cb094 libsystem_pthread.dylib`pthread_kill$VARIANT$mp + 380
frame #2: 0x00000001bd3abea8 libsystem_c.dylib`abort + 140
frame #3: 0x0000000104724f60 NMAKit`___lldb_unnamed_symbol2248$$NMAKit + 476
我能够复制它。上面的代码是在前台调用的,看起来 isInitialized 调用在前台(不是新的应用程序启动)上返回 false,因此它试图重新初始化库……然后它崩溃了。希望对您有所帮助。
您的代码:
if(!NMAApplicationContext.isInitialized()) {
NMAApplicationContext.setAppId(HERE_MAP_APP_ID, appCode: HERE_MAP_APP_CODE, licenseKey: HERE_MAP_LICENSE_KEY)
}
因为 API 用法不正确而导致崩溃:
- 应在使用任何 HereSDK API 调用之前设置凭据。
- NMAApplicationContext doesn't provide the authorize verification methods, the NMAApplicationContext.isInitialized() checks whether map functionality is ready to use (whether engine already started). The NMAApplicationContext.isInitialized() is checked before custom configuration setup.
如何解决崩溃:
- 删除 NMAApplicationContext.isInitialized() if 语句
- 调用NMAApplicationContext.setAppId(HERE_MAP_APP_ID,appCode:HERE_MAP_APP_CODE,licenseKey:HERE_MAP_LICENSE_KEY)方法检查NMAApplicationContextErrorreturn值是否设置凭证成功了。