Expo+Maplibre React Native Android应用无地图显示问题求助
解决Android端Maplibre地图不显示的问题
针对你遇到的情况,以下是几个需要排查的关键点:
容器样式未设置占满空间
你的最外层<View>没有应用任何样式,且styles.container未定义,导致地图所在的容器没有足够的显示空间。修改方式:- 将最外层
<View>改为<View style={styles.page}> - 补充
container样式:container: { flex: 1, width: '100%', height: '100%', }
确保地图容器能占满可用区域。
- 将最外层
添加Android网络权限
地图加载需要网络请求,需在app.json的android.permissions中添加INTERNET权限:"android": { "permissions": ["INTERNET"] }没有这个权限的话,Android会拦截地图瓦片和样式文件的请求,导致地图无法显示。
验证Maptiler API密钥有效性
直接在浏览器中访问你的styleURL(替换<my-token>为实际密钥),检查是否能正常返回JSON样式文件。如果返回401/403错误,说明密钥无效或未开通对应地图样式的权限,需要去Maptiler后台确认密钥配置。检查EAS Build的构建配置
确保eas.json中的Android构建使用的是managed workflow,且没有自定义gradle配置覆盖了Maplibre插件的设置。如果是bare workflow,需要手动确认build.gradle中已添加Maplibre的依赖:implementation 'org.maplibre.gl:android-sdk:9.5.0'(版本号以当前使用的库版本为准)
调整Maplibre初始化设置
尝试移除MapLibreGL.setConnected(true),让库自动检测网络状态。部分Android设备上手动设置网络状态可能导致异常。
内容的提问来源于stack exchange,提问作者Forin
相关产品推荐
相关产品推荐

