当 shouldsimulate 为 false 时,React Native mapbox android 导航崩溃

Posted

技术标签:

【中文标题】当 shouldsimulate 为 false 时,React Native mapbox android 导航崩溃【英文标题】:React Native mapbox android navigation crashes when shouldsimulate is false 【发布时间】:2021-08-17 12:48:11 【问题描述】:

我正在使用包@homee/react-native-mapbox-navigation 进行逐个导航。下面你可以看到依赖和版本:

  "dependencies": 
    "@homee/react-native-mapbox-navigation": "^1.1.0",
    "react": "17.0.1",
    "react-native": "0.64.2"
  

当我设置属性 shouldSimulateRoute=true 时,包工作正常。当我将其设置为 false 或将其删除时,应用程序在 androidphone 上崩溃。在我的模拟器上,它给了我一个错误的位置。

这是我的 gradle.build:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript 
    ext 
        buildToolsVersion = "29.0.3"
        minSdkVersion = 21
        compileSdkVersion = 29
        targetSdkVersion = 29
        ndkVersion = "20.1.5948944"
    
    repositories 
        google()
        jcenter()
    
    dependencies 
        classpath("com.android.tools.build:gradle:4.1.0")
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    


allprojects 
    repositories 
        mavenLocal()
        maven 
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        
        maven 
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
        

        maven 
            url 'https://api.mapbox.com/downloads/v2/releases/maven'
            authentication 
                basic(BasicAuthentication)
            
            credentials 
                // Do not change the username below.
                // This should always be `mapbox` (not your username).
                username = "mapbox"
                // Use the secret token you stored in gradle.properties as the password
                password = project.properties['MAPBOX_DOWNLOADS_TOKEN'] ?: ""
            
        

        google()
        jcenter()
        maven  url 'https://www.jitpack.io' 
    
  

在我的 AndroidManifest.xml 文件中,我添加了这行代码

<meta-data android:name="MAPBOX_ACCESS_TOKEN" android:value="code_here" />

我在我的 MainApplication.java 中导入了这个:

import com.homee.mapboxnavigation.MapboxNavigationPackage;

奇怪的是,当我将 is 设置为 false 时 shouldSimulate 为 true 时一切正常,因为默认设置应该不再起作用。

有人知道如何解决这个问题吗?

谢谢!

【问题讨论】:

【参考方案1】:

我已经解决了这个问题。看起来如果您关闭 shouldSimulateRoute 属性并将其设置为 false 您必须使用用户当前位置,因此您无法对其进行硬编码。这对我有帮助!

【讨论】:

以上是关于当 shouldsimulate 为 false 时,React Native mapbox android 导航崩溃的主要内容,如果未能解决你的问题,请参考以下文章

当 ShowsPlaybackControls 为 False 时,AVPlayerViewController 不会自动旋转视频

为啥当 Debug 设置为 False 时,Django 会为静态媒体生成 HTTP 500 错误?

当命令 CanExecute 为 false 时,按钮不会被禁用

当背景选项为 False 时启用在引导模式外部单击

当 UINavigation 的 Translucent 设置为 false 时,视图约束发生变化

当 JDBC AutoCommit 为 False 且未设置显式事务边界时会发生啥