You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 10在线模式下OsmDroid地图无法加载如何解决

问题诱发原因

该异常是Android系统明文网络流量拦截机制触发的:
从Android 9.0(API 等级28)开始,系统默认禁止应用发起未经过TLS加密的HTTP明文请求,所有未被明确放行的HTTP请求都会被系统直接拦截,抛出java.io.IOException: Cleartext HTTP traffic to xxx not permitted异常。
出现Android 11环境正常、Android 10环境报错的典型场景有两类:

  • 所用osmdroid版本的高版本系统适配逻辑存在分支:在Android 11及以上系统运行时自动将瓦片请求地址切换为HTTPS协议,在Android 10系统运行时仍使用默认的HTTP协议瓦片地址,触发系统拦截
  • 应用内配置的网络安全规则仅对Android 11及以上版本生效,Android 10系统下未匹配到明文流量放行规则,请求被拦截
修复方案

按优先级从高到低排列:

  • 最优方案:强制osmdroid使用HTTPS协议的瓦片源
    该方案不需要放宽系统安全限制,符合Android平台网络安全规范,只需要在osmdroid初始化阶段替换默认瓦片源为HTTPS地址即可,核心代码示例:
    // osmdroid初始化逻辑中添加配置
    Configuration.getInstance().setTileFileSystemCacheMaxBytes(100 * 1024 * 1024);
    // 定义HTTPS协议的OSM瓦片源
    IOnlineTileSource osmHttpsSource = new XYTileSource(
        "Mapnik",
        0, 19, 256,
        ".png",
        new String[]{
            "https://a.tile.openstreetmap.org/",
            "https://b.tile.openstreetmap.org/",
            "https://c.tile.openstreetmap.org/"
        }
    );
    // 给MapView设置该瓦片源
    mapView.setTileSource(osmHttpsSource);
    
  • 次选方案:通过网络安全配置单独放行瓦片域名的明文流量
    如果暂时无法切换HTTPS源,可针对瓦片服务域名单独配置明文放行权限,无需全局放开所有HTTP请求,安全性影响较小:
    1. 在项目res/xml目录下新建network_security_config.xml文件,写入如下配置:
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <domain-config cleartextTrafficPermitted="true">
            <!-- 放行OSM瓦片域名下的所有子域名明文请求 -->
            <domain includeSubdomains="true">tile.openstreetmap.org</domain>
        </domain-config>
    </network-security-config>
    
    1. 在AndroidManifest.xml的application标签下添加配置引用:
    <application
        android:networkSecurityConfig="@xml/network_security_config"
        <!-- 其余原有配置保持不变 -->
        >
        <!-- 其余组件声明保持不变 -->
    </application>
    
  • 临时调试方案:全局放开明文流量
    直接在AndroidManifest.xml的application标签下添加android:usesCleartextTraffic="true"属性,即可全局允许应用发起所有HTTP明文请求。该配置会降低应用通信安全性,仅建议临时调试时使用,正式发布版本不推荐采用。

内容的提问来源于stack exchange,提问作者android tech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 23:45:36