【问题标题】:MapView is causing the app to crash. No errors printed in log. React-Native-MapsMapView 导致应用程序崩溃。日志中没有打印错误。 React-Native-Maps
【发布时间】:2018-02-26 10:36:14
【问题描述】:

以前它工作正常,但现在我的视图包含 mapview 崩溃,并且只有在我取出 mapview 时才能工作。我在 react-native-maps github 页面上遇到了几个问题,这些问题似乎与我的相似,大多数人说这与您在 build.gradle 的依赖项中添加的 google play 服务有关,我已经对然而,一切都没有改变。我检查了一下,我的地图 api 密钥很好,图书馆是根据指南设置的。如果您知道问题可能是什么,请发表评论或回答。几天前地图视图运行良好,现在却不行。

在我的 build.gradle 中 sdk 版本...

  compileSdkVersion 23
   buildToolsVersion "23.0.3"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 23

依赖关系....

compile(project(':react-native-maps')){
        exclude group: 'com.google.android.gms', module: 'play-services-base'
        exclude group: 'com.google.android.gms', module: 'play-services-maps'
    }
compile 'com.google.android.gms:play-services-base:+'
compile 'com.google.android.gms:play-services-location:+'
compile 'com.google.android.gms:play-services-maps:+'

清单内

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

   <meta-data
  android:name="API_KEY"
  android:value="AIzaSyCV3tjuvgsj1HqTdKqtyh-x8oFLmupq9iI"/>

MainApplications.java 内部

 new MapsPackage(),
Inside settings.gradle
include ':react-native-maps'
project(':react-native-maps').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-maps/lib/android')

我如何称呼 MapView

<MapView
      region={{            
        longitude: LONGITUDE,
        latitude: LATITUDE, 
        longitudeDelta: LONGITUDE_DELTA,
        latitudeDelta: LATITUDE_DELTA
      }
      }
      style={styles.container}
    >

任何可能意味着什么: 我正在使用地理位置来获取用户位置,然后将初始区域切换到用户当前位置坐标。

【问题讨论】:

  • 您是否允许应用程序从设置中访问位置?
  • 我不明白,什么意思? :) 提示让用户打开位置?在我所有的测试中,位置都是开启的。
  • 在手机设置->应用->权限->开启位置
  • 不幸的是这不起作用:(

标签: android react-native react-native-maps


【解决方案1】:

试试这个 在构造函数中

this.state= {
      region: {
        latitude: 24.4539,
        longitude: 54.3773 ,
        latitudeDelta: LATITUDE_DELTA,
        longitudeDelta: LONGITUDE_DELTA,
      },
    };

这种改变区域的方法

onRegionChange(region: Object) {
    this.setState({
      region : region
    });
  }

调用 MapView

<MapView style={{flex: 1}}
         initialRegion={this.state.region}
         region={this.state.region}
         onRegionChangeComplete={(region) => this.onRegionChange(region)} />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 2020-02-17
    • 2022-12-25
    • 2017-01-16
    相关资源
    最近更新 更多