NativeScript7.2.0+Angular8安卓端地图SDK报Property非构造函数错误
报错根本原因
报错本质是版本不兼容:nativescript-google-maps-sdk 3.0.2 是适配NativeScript 6.x及更早版本的第三方插件,和当前使用的NativeScript 7.2.0核心API存在不匹配。
NativeScript 7版本对核心模块的导出结构做了大规模重构,原核心模块导出的Property类在7.x版本中做了迁移调整,旧插件在map-view-common.js第275行直接尝试实例化该构造器时,就会抛出Property is not a constructor的类型错误。从报错栈能看到加载链路是从home组件导入插件代码开始触发的,完全是插件版本和NS核心版本错位导致的。
可落地的解决步骤
- 卸载当前不兼容的旧版插件:执行
npm uninstall nativescript-google-maps-sdk,避免webpack打包时残留旧插件的代码片段触发重复加载错误。 - 安装和当前技术栈完全匹配的官方适配插件:选择适配NativeScript 7.x、同时兼容Angular 8的官方维护地图插件版本,执行
npm install @nativescript/google-maps@1.0.0 --save,这个版本是官方插件完成NS7适配的首个稳定版本,不存在核心API调用错位的问题。 - 修正所有旧的导入逻辑:把项目中原来从
nativescript-google-maps-sdk路径导入的地图组件、指令,全部替换为从新安装的插件路径导入,不要留任何旧插件的引用残留。 - 安卓调试环境补全配置:替换插件后,按插件要求配置安卓端的Google地图API密钥,同时确认使用的安卓模拟器镜像自带Google Play服务框架,否则即使解决了构造器报错,也会出现地图区域空白的加载失败问题。
内容的提问来源于stack exchange,提问作者sdtrois
相关产品推荐
相关产品推荐

