您好,我正在 React Native (v0.73) 项目中将 Mapbox Navigation SDK v3 与 Android 结合使用。
我被困在视图文件中初始化 sdk
class MapNavigationView(private val context: ThemedReactContext) :
...
private val navigationObserver = object : MapboxNavigationObserver {
override fun onAttached(mapboxNavigation: MapboxNavigation) {
sendErrorToReact("onAttached: $mapboxNavigation")
}
override fun onDetached(mapboxNavigation: MapboxNavigation) {
sendErrorToReact("onDetached: $mapboxNavigation")
}
}
private lateinit var mapboxNavigation: MapboxNavigation
...
fun onCreate() {
if (!MapboxNavigationApp.isSetup()) {
sendErrorToReact("Getting setup")
MapboxNavigationApp.setup (
NavigationOptions.Builder(context)
.build()
)
MapboxNavigationApp.registerObserver(navigationObserver)
sendErrorToReact(MapboxNavigationApp.current().toString())
sendErrorToReact(MapboxNavigationApp.toString())
}
if(MapboxNavigationApp.current() != null){
mapboxNavigation = MapboxNavigationApp.current()!!
}
}
MapboxNavigationApp.current() 始终为 null。我不断收到 mapboxNaigation 变量未初始化的错误。
任何帮助让这个运行将非常感谢!
好吧,我设法通过使用生命周期事件解决了这个问题:
override fun onAttachedToWindow() {
super.onAttachedToWindow()
lifecycle.addObserver(object : DefaultLifecycleObserver {
override fun onResume(owner: LifecycleOwner) {
sendErrorToReact("onResume")
MapboxNavigationApp.attach(owner)
}
override fun onPause(owner: LifecycleOwner) {
sendErrorToReact("onPause")
MapboxNavigationApp.detach(owner)
}
})
onCreate()
}