react-native-baidu-map的配置实践

想使用react-native做一个地图应用,安装的过程中遇到了不少问题,这里总结一下安装过程

初始化一个react-native项目 react-native init mapApp

安装react-native-baidu-map,适用npm安装的时候总会被莫名其妙的被删除一下依赖包,所以使用的yarn,yarn add react-native-baidu-map --save

然后去百度地图开发平台申请ak

应用类型选择android SDK

填写发布版SHA1

获取方式:打开cmd 输入cd .android

输入keytool -list -v -keystore debug.keystore

获取指纹证书中的SHA1

填写包名

获取方式:mapApp/android/app/src/main/AndroidManifest.xml文件中的package="com.mapapp"

填写完毕提交

在android目录下的settings.gradle文件下添加以下内容

include ':react-native-baidu-map'

project(':react-native-baidu-map').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-baidu-map/android')

在android/app目录下的build.gradle文件下dependencies中添加以下内容

compile project(':react-native-baidu-map')

在android/app/src/main/java/com/mapapp/MainApplication.java文件中添加以下内容

import org.lovebing.reactnative.baidumap.BaiduMapPackage;

List ReactPackage中添加, new BaiduMapPackage(getApplicationContext())逗号不能少

在android/app/src/main目录下的AndroidManifest.xml文件中添加以下内容

                            <!-- 这个权限用于进行网络定位-->
            <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
            <!-- 这个权限用于访问GPS定位-->
            <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>              
            <uses-permission android:name="android.permission.INTERNET" />
            <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
            <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
            <uses-permission android:name="android.permission.WAKE_LOCK"/>
            <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
            <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
            <uses-permission android:name="android.permission.WRITE_SETTINGS" />
            
            
            <meta-data  
                android:name="com.baidu.lbsapi.API_KEY"  
                android:value="ep76v15zBgBFPch30RAsYl3PihzIlTh4"/>  
                ep76v15zBgBFPch30RAsYl3PihzIlTh4</br>就是在百度地图开放图片上面申请的key

走到这一步基本配置已经差不多ok了
在你的应用中引入react-natvie-baidu-map并使用,然后运行项目

这个时候应该会报错,node_modules\react-native-baidu-map\android\src\main\java\org\lovebing\reactnative\baidumap\BaiduMapPackage.java:49: 错误: 方法不会覆盖或实现超类型的方法

如果遇到这个错误删除掉这个路径下的依赖文件中的@Override方法

再次运行,这时命令行应该不会报错了,但是在模拟器上应该是一片红色报错,react-native-baidu-map undefined is not an object(evaluting 'a.PropTypes.bool')

将node_modules\react-native-baidu-map\js\MapView.js中的import React, {
Component,
PropTypes
} from 'react';
对PropTypes的引用修改为import PropTypes from 'prop-types'

再次启动,ok

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,481评论 25 709
  • 简短说明 收录一些好用的RN第三方组件,以方便日常的使用,大家有什么推荐的也可以跟我说,我加进去。如有冒犯,可以联...
    以德扶人阅读 43,759评论 44 214
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,641评论 2 45
  • 01 一个同事小Y突然辞职了,原因是要准备国考,她不想这样每天稀里糊涂的忙,只想有一份稳定的工作,肯定比现在好的多...
    静女城隅阅读 388评论 0 3
  • 道是无情终有情, 一生坎坷事未成。 空怀寂寞崖头坐, 夜风吹过山里红。 杨土原/作品 ...
    黄土原阅读 593评论 14 7