同步操作将从 肖岩/osgearth-collect 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
本项目为 fork 自github thahemp 的仓库,对代码做了一定的修改,编译通过的 osgearth Android 版程序
软件架构
本文根据 osgearth 论坛第三方作者thahemap的仓库代码完成
编译环境为 Win10 的 Ubuntu 子系统,版本为 18.04
环境变量设置
针对当前用户设置,可以在~/.bashrc 文件底部增加内容
export ANDROID_HOME="/mnt/f/DevelopmentTools/sdk"
export ANDROID_NDK="/mnt/f/DevelopmentTools/linux/android-ndk-r11c-linux-x86_64/android-ndk-r11c"
export PATH="${PATH}:${ANDROID_HOME}:/usr/lib/x86_64-linux-gnu:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:${ANDROID_NDK}:/usr/include"
注: 路径需要替换为自己的本地路径,对于 win10 的 linux 子系统,windows 盘符都是挂接在/mnt 目录下,例如 windows 的 C 盘在 linux 子系统中对应目录为/mnt/c
随后需要通过 linux 下载指定的依赖包,因此建议将 apt 仓库地址设置为国内镜像地址
参考CSDN 网友的编译经验,针对 64 位 Ubuntu 系统,建议安装 Linux 的编译环境所需依赖包
sudo apt-get install autoconf automake ant autopoint cmake build-essential libtool m4 patch pkg-config protobuf-compiler ragel subversion unzip git
OSG 官方对于 linux 系统在编译时所需要的依赖环境,也给出了依赖包下载代码 apt-get build-dep openscenegraph
,建议也一并安装
在编译osgearth-android,可能会提示:fatal error: GLES2/gl2.h: No such file or directory,这里应该是需要安装OpenGL-es,参考此链接,安装下面的组建即可
sudo apt-get install mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev
sudo apt-get install mesa-utils
注意:在编译 OSGEarthAndroidDemo 时,如果将 Application.mk 内的 APP_PLATFORM 设置为 19(事实上是小于 19 的版本),编译时会报错误,不用理会,再将 APP_PLATFORM 版本号修改为 27,重新编译,会在 OSGEarthAndroidDemo/Map/app/src/osgearth/libs 目录下生成新的 so 文件,因为 build.gradle 中配置 so 文件目录为 OSGEarthAndroidDemo/libs 目录下,需要将该目录下文件拷贝到 OSGEarthAndroidDemo/libs 目录下,运行 Android 程序即可
如果直接使用 platform 为 27 的版本执行编译,会报下面的错误,同理,将 Application.mk 内的 APP_PLATFORM 设置为 19,重新编译即可
编译完成后的 Android 程序演示效果
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。