少林寺方丈嘿嘿
少林寺方丈嘿嘿
  • 发布:18 分钟前
  • 更新:17 分钟前
  • 阅读:19

【报Bug】在Android最新壳子里面的代码调用地图时显示打包未添加maps模块,其实我已经添加了的

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: mac 15.4

HBuilderX类型: 正式

HBuilderX版本号: 5.25

手机系统: Android

手机系统版本号: Android 12

手机厂商: 华为

手机机型: 荣耀畅享

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

<template>
<view class="content">
<image class="logo" src="/static/logo.png"></image>
<view class="text-area">
<text class="title">{{title}}</text>
</view>
<map

            id="shopMap"  
            ref="shopMap"  
            style="width: 750rpx;height: 1000rpx;"  
            :latitude="latitude"  
            :longitude="longitude"  

          ></map>  
</view>  

</template>

<script>
export default {
data() {
return {
title: 'Hello',
latitude: 39.908722,
longitude:116.397499
}
},
onLoad() {

    },  
    methods: {  

    }  
}  

</script>

<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}

.logo {  
    height: 200rpx;  
    width: 200rpx;  
    margin-top: 200rpx;  
    margin-left: auto;  
    margin-right: auto;  
    margin-bottom: 50rpx;  
}  

.text-area {  
    display: flex;  
    justify-content: center;  
}  

.title {  
    font-size: 36rpx;  
    color: #8f8f94;  
}  

</style>

操作步骤:

我已经将代码发上去了,这是一个必现的问题,

预期结果:

更新最新的https://nativesupport.dcloud.net.cn/UniMPDocs/SDKDownload/android.html SDK依赖可以使用地图功能

实际结果:

实际上当前一直在报没有添加maps模块

bug描述:

我将地图 <map

            id="shopMap"  
            ref="shopMap"  
            style="width: 750rpx;height: 1000rpx;"  
            :latitude="latitude"  
            :longitude="longitude"  

          ></map>代码添加到demo里面在hb上运行可以,但是我将其放到官方的SDK的Androiddemo里面运行就报打包时未添加maps模块,我是按照官方文档添加的,不知道是哪里有遗漏
18 分钟前 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

针对您反馈的 Bug,作为 DCloud 官方人员,我对该反馈内容进行了评审与分析,具体如下:

1. Bug 反馈内容完整性评审

  • BUG 描述:描述较为清晰,说明了在 HBuilderX 标准基座下运行正常,但在使用官方 Android 离线 SDK 集成时提示“打包时未添加 maps 模块”。
  • 代码示例:提供的 Vue 代码示例完整且可直接运行,能够明确看出您在前端层面对 <map> 组件的调用方式。
  • 复现步骤:复现步骤较简略,仅说明了“代码已发上去,必现”。由于涉及 Android 离线打包,仅凭前端代码无法复现,还需要您补充原生工程侧的配置信息。
  • 预期与实际结果:预期结果合理,实际结果符合 Android 离线打包环境缺失对应原生模块或依赖时的典型表现,不属于误报。
  • 分类信息:包含了开发环境、HBuilderX 版本、手机系统及机型等必要信息,分类完整。
  • 附件说明:我无法识别附件内容,如果您有原生工程截图或配置文件,请直接以文本形式粘贴关键内容。

2. Bug 是否成立分析

根据您提供的现象,该 Bug 本质上属于 Android 离线打包集成地图模块时的配置或依赖遗漏问题

在 uni-app 的 Android 离线打包中,前端代码调用 <map> 组件时,底层需要原生工程提供对应的地图 SDK 支持。出现“打包时未添加 maps 模块”的提示,通常有以下几种原因:

  1. 原生工程依赖缺失
    在 Android 端的 app 目录的 build.gradle 中,需要根据您选择的地图厂商添加对应的 SDK 依赖。例如,如果您使用的是高德地图,需要配置:

    dependencies {  
       implementation('com.amap.api:3dmap:xxx')  
       implementation('com.amap.api:search:xxx')  
    }  

    本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
    如果使用的是谷歌地图,则需要添加:

    implementation 'com.google.android.gms:play-services-maps:18.0.1'  

    本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
    注:版本号需通过离线 SDK 中的 demo 获取相对应的版本。如果是本地集成的高德地图 SDK,需要删除相关 aar 文件,否则会导致 SDK 冲突。
    参考:Android离线打包地图模块配置

  2. 代码混淆配置不当
    如果您的 build.gradle 中配置了 proguard 混淆,且混淆了 SDK 的代码,也会导致应用启动时提示未添加相关模块。需确保不要混淆 SDK 的代码,混淆配置和文件可以参考 SDK 中的 UniPlugin-Hello-AS 项目。
    参考:应用启动白屏或者提示打包时未添加ui模块

  3. 基座环境差异
    在 HBuilderX 中运行正常是因为使用的是官方标准基座(已内置各类常用模块);而在自定义 Android 原生壳子中运行报错,是因为原生工程默认不包含这些模块,需要您手动按照官方文档接入。

建议补充信息:
为了进一步定位问题,建议您补充以下信息:

  1. 您在原生工程中使用的是哪家地图服务(高德、谷歌等)?
  2. 您的 build.gradle 文件中 dependencies 节点的完整配置内容是什么?
  3. 您是否在原生工程中开启了代码混淆?
内容为 AI 生成,仅供参考

要回复问题请先登录注册