1***@163.com
1***@163.com
  • 发布:2025-12-18 16:28
  • 更新:2025-12-18 16:40
  • 阅读:17

【报Bug】安卓离线打包,高德地图设置自定义marker图标安卓闪退,hbuilderX基座正常,

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

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

手机系统: Android

手机系统版本号: Android 16

手机厂商: 三星

手机机型: S23U

页面类型: nvue

vue版本: vue3

打包方式: 离线

项目创建方式: CLI

CLI版本号: 4.85

操作步骤:

离线打包运行,map上渲染marker

预期结果:

正常展示

实际结果:

app崩溃闪退

bug描述:

按官方文档配置了定位和地图相关资源包,设置自定义图片闪退,
代码:

this.markers = [{
id: 1,
longitude: lng,
latitude: lat,
callout: {
content: name,
borderRadius: 5,
padding: 8,
display: 'ALWAYS',
},
width: 30,
height: 30,
iconPath: '/static/img/address_marker.png',
}, ]
this.mapContext.addMarkers({
markers: this.markers,
clear: true,
})

android studio报错日志如下

FATAL EXCEPTION: main
Process: com.jinjump.app, PID: 29479
java.lang.IncompatibleClassChangeError: Found class com.facebook.imagepipeline.image.CloseableBitmap, but interface was expected (declaration of 'com.facebook.imagepipeline.image.CloseableBitmap' appears in /data/app/~~JKucvnDH0PVQ-KyGXJwo5w==/com.jinjump.app-AkRBBSxyX3mPdNTqZlWaQQ==/base.apk)
at io.dcloud.feature.weex.adapter.FrescoLoadUtil$1$2.onNewResultImpl(r8-map-id-b4716a25f9920722ba6f2d7f7c6f40e43a654927e8ebe1c489894a7bc6a88ab4:13)
at com.facebook.datasource.BaseDataSubscriber.onNewResult(BaseDataSubscriber.java:51)
at com.facebook.datasource.AbstractDataSource$1.run(AbstractDataSource.java:200)
at android.os.Handler.handleCallback(Handler.java:995)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loopOnce(Looper.java:273)
at android.os.Looper.loop(Looper.java:363)
at android.app.ActivityThread.main(ActivityThread.java:10060)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)

2025-12-18 16:28 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

该bug反馈内容较为完整,包含了标题、详细描述、代码示例、复现步骤、预期与实际结果及分类信息。代码示例展示了marker设置关键逻辑,但缺少mapContext初始化上下文;复现步骤简洁但可操作;预期结果合理,实际闪退现象明确。分类信息中HBuilderX仅标注"正式版"未提供具体版本号,需补充。

bug成立可能性高。错误日志显示java.lang.IncompatibleClassChangeError涉及Fresco库类冲突(CloseableBitmap应为接口但发现类),常见于离线打包时依赖库版本不匹配。知识库表明:

  • Android平台离线打包需特别注意依赖管理参考
  • 自定义基座闪退需检查gradle依赖参考
  • 近期更新修复了高德地图相关兼容性问题参考

建议用户:

  1. 确认HBuilderX具体版本(应≥4.86),通过离线SDK调试指南检查gradle依赖
  2. 在Android Studio中排查Fresco库冲突,确保implementation 'com.facebook.fresco:fresco:2.6.0'等版本与基座兼容
  3. 尝试使用HBuilderX云打包替代离线打包验证问题参考
  4. 检查是否遗漏高德地图插件资源包配置,参考基座闪退日志获取方法定位具体原因
内容为 AI 生成,仅供参考
1***@163.com

1***@163.com (作者)

安卓依赖文件

implementation fileTree(dir: 'libs', include: ['.aar', '.jar'], exclude: [])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
implementation 'androidx.core:core:1.1.0'
implementation "androidx.fragment:fragment:1.1.0"
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'com.facebook.fresco:fresco:2.5.0'
implementation "com.facebook.fresco:animated-gif:2.5.0"
implementation 'com.github.bumptech.glide:glide:4.9.0'
implementation 'com.alibaba:fastjson:1.2.83'
implementation 'androidx.webkit:webkit:1.5.0'
implementation 'com.amap.api:3dmap-location-search:10.0.700_loc6.4.5_sea9.7.2'

要回复问题请先登录注册