uni-app android 4.44.2024123110 sdk 版本使用高德地图时出现地图不能显示空白问题

发布于 1周前 作者 songsunli 来自 Uni-App

uni-app android 4.44.2024123110 sdk 版本使用高德地图时出现地图不能显示空白问题

操作步骤

按照官方文档集成高德集成

预期结果

正常显示地图

实际结果

地图区域空白

bug描述

按照官方文档集成高德集成,使用 4.4 版本 4.3 版本都会出现高德地图空白的问题,在 android studio 中会有如下的错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'io.dcloud.js.map.amap.JsMapObject io.dcloud.js.map.amap.JsMapManager.getJsObject(java.lang.String)' on a null object reference
2025-01-03 16:31:07.079 22748-22748 System.err              com.gaozhipharm.helper               W      at io.dcloud.js.map.amap.JsMapPluginImpl$1.execute(JsMapPluginImpl.java:78)
2025-01-03 16:31:07.079 22748-22748 System.err              com.gaozhipharm.helper               W      at io.dcloud.common.adapter.util.MessageHandler$1.handleMessage(SourceFile:3)
2025-01-03 16:31:07.079 22748-22748 System.err              com.gaozhipharm.helper               W      at android.os.Handler.dispatchMessage(Handler.java:106)
2025-01-03 16:31:07.079 22748-22748 System.err              com.gaozhipharm.helper               W      at android.os.Looper.loopOnce(Looper.java:205)
2025-01-03 16:31:07.079 22748-22748 System.err              com.gaozhipharm.helper               W      at android.os.Looper.loop(Looper.java:294)
2025-01-03 16:31:07.079 22748-22748 System.err              com.gaozhipharm.helper               W      at android.app.ActivityThread.main(ActivityThread.java:8417)
2025-01-03 16:31:07.079 22748-22748 System.err              com.gaozhipharm.helper               W      at java.lang.reflect.Method.invoke(Native Method)
2025-01-03 16:31:07.079 22748-22748 System.err              com.gaozhipharm.helper               W      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
2025-01-03 16:31:07.079 22748-22748 System.err              com.gaozhipharm.helper               W      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:977)

开发环境信息

项目创建方式 PC开发环境操作系统 PC开发环境操作系统版本号 HBuilderX类型 HBuilderX版本号 手机系统 手机系统版本号 手机机型 页面类型 vue版本 打包方式
HBuilderX Mac 14.6.1 (23G93) 正式 4.44 Android Android 14 魅族 21 vue vue3 离线

2 回复

请先云端打包看是否可以正常运行?如果仅在离线打包环境下无法正常显示,说明离线打包原生配置不正确。


针对您提到的uni-app在Android 4.4.4(API Level 19)设备上,使用高德地图SDK版本4.44.2024123110时出现的地图不能显示(空白)问题,这可能是由于多种原因导致的,包括但不限于SDK与Android版本的兼容性、权限配置不当、地图初始化代码有误等。以下是一些常见的排查步骤和代码示例,帮助您定位并解决问题。

1. 检查权限配置

确保在manifest.json中正确配置了高德地图所需的权限,包括网络权限和定位权限。

"permissions": {
    "android.permission.INTERNET": {
        "desc": "允许程序访问网络"
    },
    "android.permission.ACCESS_FINE_LOCATION": {
        "desc": "允许程序获取精确位置"
    },
    "android.permission.ACCESS_COARSE_LOCATION": {
        "desc": "允许程序获取粗略位置"
    },
    "android.permission.WRITE_EXTERNAL_STORAGE": {
        "desc": "允许程序写入外部存储"
    },
    "android.permission.READ_EXTERNAL_STORAGE": {
        "desc": "允许程序读取外部存储"
    }
}

2. 初始化高德地图

pages/index/index.vue中,确保地图的初始化代码正确无误。

<template>
  <view>
    <map id="map" :longitude="longitude" :latitude="latitude" style="width: 100%; height: 100%;" />
  </view>
</template>

<script>
export default {
  data() {
    return {
      longitude: 116.397428, // 默认经度
      latitude: 39.90923 // 默认纬度
    };
  },
  mounted() {
    this.initMap();
  },
  methods: {
    initMap() {
      // 初始化高德地图,这里假设您已经通过npm安装了高德地图SDK
      const AMap = window.AMap;
      if (AMap) {
        const map = new AMap.Map('map', {
          center: [this.longitude, this.latitude],
          zoom: 10
        });
      } else {
        console.error('高德地图SDK未正确加载');
      }
    }
  }
};
</script>

3. 检查SDK版本兼容性

由于Android 4.4.4是一个较老的版本,可能存在某些API不兼容的情况。建议查阅高德地图SDK的官方文档,确认支持的最低Android版本。如果当前SDK版本不支持Android 4.4.4,考虑降级SDK版本或升级Android设备。

4. 调试与日志

使用Android Studio或ADB工具查看应用的日志输出,寻找与地图加载相关的错误信息,这有助于进一步定位问题。

adb logcat | grep -i map

以上步骤和代码示例应能帮助您开始排查和解决uni-app中使用高德地图SDK时出现的地图不能显示问题。如果问题依旧存在,建议联系高德地图的技术支持团队获取更专业的帮助。

回到顶部