毕业设计要基于开源地图绘制平台Mapbox来实现一套自己的移动端地图绘制平台,Mapbox是一个全平台的开源产品,PC端的Windows,Linux,Mac OS,移动端的Android,iOS…….全部支持。
Mapbox github上的地址是https://github.com/mapbox/mapbox-gl-native
在github上的帮助文档已经是非常详细了,这里记录一下,官方帮助说明文档上没有提及或没有着重提及的地方,因为整个系统比较大,代码比较多,文件夹也比较多,要先看一下github上关于整个工程结构的md文件(https://github.com/mapbox/mapbox-gl-native/blob/master/ARCHITECTURE.md).
需要注意的地方有以下几点,做个笔记省的后面忘掉:
1.编译要在Ubuntu系统下,官方是Ubuntu 16.04,我用的是14.04。
2.注意不要下载工程,不要用Download ZIP,以前下载github上的东西习惯这样了,结果后面入了大坑,好多莫名其秒的问题,比如说什么此Ubuntu系统不支持ipchains,iptables等,所以一定一定要用Git clone 的形式,将工程clone到本地电脑上。
3.我目前主要是编译Android版本
- 参照Android版本的linux下编译指南(https://github.com/mapbox/mapbox-gl-native/blob/master/platform/android/CONTRIBUTING_LINUX.md)是没有要求要装QT的,结果在编译过程中提示找不到qmake,所以还是要装上QT的;
- 编译时还会提示一个mason 没找到该命令,其实mason是一个脚本文件命令,这是一个很老的工具,不知道为啥Mapbox团队还在用它,不过在ubuntu上用命令 sudo apt-get install mason,是可以安装上的,如果不行,就退出终端再重新打开试一下;
- 编译过程中会有时会提示内存不够大,可以在gradle.properties中添加一句org.gradle.jvmargs=-Xmx3072M(不一定是3072,1536也可以,看你的电脑内存大小了);
- 编译时有时还会提示找不到Android SDK 位置,提示说要设置环境变量或在local.properties设置SDK的路径;亲身实践证明,我明明设置了环境变量,还是不行,后来搜索上找到答案,这种情况还是在local.properties中添加SDK的路径,尝试了一下,果然顺利通过;
- 然后,当以为绝对可以的时候,最后一步,又出现了一个问题提示 debug.keystore为null,然后根据提示的路径(Ubuntu下在root/.android下,需要权限才能进去)发现明明有这个文件,后来尝试先删除这个文件,然后用keytool命令重新生成一个debug.keystore,重新编译,成功。
最后安装编译成功的apk文件 ,结果又来问题了,发现用adb devices发现我的手机是???,是没有权限的原因,这个问题可以搜索解决
Ubuntu adb devices : no permissions。最终成功安装到手机上。
最后说一下,虽然用的是Ubuntu,参考的是Linux下的编译指南(https://github.com/mapbox/mapbox-gl-native/blob/master/platform/android/CONTRIBUTING_LINUX.md),其实我发现Mac下的编译指南(https://github.com/mapbox/mapbox-gl-native/blob/master/platform/android/CONTRIBUTING_MACOS.md)也很有参考价值。