PhoneGap Cordova Google Maps插件报错:plugin未定义求助
解决PhoneGap中cordova-plugin-googlemaps的"plugin is not defined"错误
我看你在使用PhoneGap开发时遇到了Google Maps插件的引用错误,这个问题其实是插件版本更新后的全局对象变化导致的,我来帮你一步步解决:
错误原因
从cordova-plugin-googlemaps的v2版本开始,官方把插件的全局访问对象从plugin改成了cordova.plugins,你代码里还是用旧的plugin.google.maps写法,自然会找不到这个变量,抛出Uncaught ReferenceError: plugin is not defined。
具体解决方案
1. 修正代码中的插件引用
把你代码里的地图初始化代码:
var map = plugin.google.maps.Map.getMap("map_canvas");
改成新版本的正确写法:
var map = cordova.plugins.google.maps.Map.getMap("map_canvas");
另外,建议给地图初始化加上错误处理逻辑,方便后续排查问题,比如:
document.addEventListener("deviceready", function() { // 先确认插件是否正确加载 if (!cordova || !cordova.plugins || !cordova.plugins.google.maps) { console.error("Google Maps插件未正确加载,请检查插件安装状态"); return; } // 初始化地图,可添加API密钥等配置 var map = cordova.plugins.google.maps.Map.getMap("map_canvas", { apiKey: "你的Google Maps Android API密钥" }, function(mapInstance) { console.log("地图加载成功!"); // 这里可以添加地图的后续操作 }, function(error) { console.error("地图加载失败:", error); }); }, false);
2. 确认插件安装和项目配置无误
虽然你已经尝试过安装插件,但可以再做一次完整的重新配置确保没有问题:
- 先移除旧插件,再重新安装(记得替换成你的API密钥):
phonegap plugin remove cordova-plugin-googlemaps phonegap plugin add cordova-plugin-googlemaps@2.3.4-beta-20180517-1004 --variable API_KEY_FOR_ANDROID="你的Android API密钥" --variable API_KEY_FOR_IOS="你的iOS API密钥"
- 重新添加Android平台,确保平台配置和插件兼容:
phonegap platform remove android phonegap platform add android
- 检查项目根目录的
config.xml文件,确认里面已经包含插件的配置项,且API密钥填写正确。
3. 额外注意事项
- 不要在浏览器中测试这个插件:cordova-plugin-googlemaps是依赖Android/iOS原生平台的插件,浏览器环境下无法正常运行,必须在真机或者模拟器上测试。
- 确保
cordova.js的引入路径正确:你的代码里已经正确引入了<script type="text/javascript" src="cordova.js"></script>,在PhoneGap Dev App中这个文件会自动注入,本地开发时也不要修改这个路径。
内容的提问来源于stack exchange,提问作者Zack Arnett
相关产品推荐
相关产品推荐

