You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cordova Android 13环境下Google Maps无法渲染问题求助

问题

将Ionic应用升级至Cordova Android 13后,Google Maps无法渲染,仅显示黑屏,无报错或应用崩溃现象。控制台输出js_CordovaGoogleMaps-for-android_ios.js第802行的background = #FFF,浏览器及iOS端运行正常且无该日志。

相关package.json内容:

{
  ...
  "dependencies": {
    "@angular/common": "~8.1.2",
    "@angular/core": "~8.1.2",
    "@ionic-native/core": "^5.0.0",
    "@ionic-native/device": "^5.36.0",
    "@ionic-native/firebase-x": "^5.36.0",
    "@ionic-native/geolocation": "^5.36.0",
    "@ionic-native/google-maps": "^5.0.0-beta.27",
    "@ionic/angular": "^4.7.1",
    "colors": "1.4.0",
    "cordova-plugin-device": "^2.0.2",
    "cordova-support-android-plugin": "^1.0.1",
  },
  ...
  "devDependencies": {
    "@angular/cli": "~8.1.2",
    "@angular/compiler": "~8.1.2",
    "@angular/compiler-cli": "~8.1.2",
    "@chacabuk/cordova-plugin-googlemaps": "github:TSFArg/cordova-plugin-googlemaps",
    "@ionic/angular-toolkit": "^2.1.1",
    "@types/node": "~8.9.4",
    "cordova-android": "^13.0.0",
    "cordova-android-play-services-gradle-release": "^4.0.0",
    "cordova-androidx-build": "^1.0.4",
    "cordova-plugin-androidx-adapter": "^1.1.3",
    "cordova-plugin-device": "^2.0.2",
    "cordova-plugin-firebasex": "^16.0.0-cli",
  },
  ...
  "cordova": {
    "plugins": {
      "uk.co.workingedge.phonegap.plugin.launchnavigator": {
        "OKHTTP_VERSION": "3.12.0",
        "LOCATION_USAGE_DESCRIPTION": ""
      },
      "cordova-plugin-geolocation": {
        "GPS_REQUIRED": "true"
      },
      "cordova-plugin-firebasex": {
        "ANDROID_FIREBASE_AUTH_VERSION": "21.2.0"
      },
      "cordova-plugin-androidx-adapter": {},
      "cordova-android-play-services-gradle-release": {
        "PLAY-SERVICES-MAPS": "17.0.0"
      },
      "barcodescanner-ec": {
        "ANDROID_SUPPORT_V4_VERSION": "27.+"
      },
      "cordova-plugin-googlemaps": {},
    },
  }
  ...
}
解决方案

一、排查遗漏的配置项

  • Google Maps API密钥配置
    检查config.xml中是否正确配置Android平台的API密钥,格式如下:

    <platform name="android">
      <preference name="GOOGLE_MAPS_ANDROID_API_KEY" value="你的Android API密钥"/>
    </platform>
    

    确认密钥已启用Android Maps SDK权限,且SHA-1指纹与应用签名匹配。

  • Android 13权限适配
    Android 13新增POST_NOTIFICATIONS权限,部分地图初始化逻辑可能依赖该权限用于位置更新,需在AndroidManifest.xml中添加:

    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
    

    同时确保已声明必要的位置权限:

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    
  • 插件版本兼容性

    • 当前@ionic-native/google-maps为5.0.0-beta.27,版本较旧,可能与Cordova Android 13不兼容,建议升级到^5.36.0,与其他@ionic-native插件版本对齐。
    • 检查@chacabuk/cordova-plugin-googlemaps的GitHub仓库是否有Cordova Android 13适配更新,或切换到官方维护的cordova-plugin-googlemaps插件。
  • Play Services版本匹配
    当前配置的PLAY-SERVICES-MAPS为17.0.0,版本过低,易与Cordova Android 13的Gradle环境冲突,建议升级到18.0.0+,修改cordova.plugins配置:

    "cordova-android-play-services-gradle-release": {
      "PLAY-SERVICES-MAPS": "18.1.0"
    }
    

二、获取调试信息的方法

  • 启用插件调试模式
    初始化Google Maps时添加debug: true参数,输出更详细的日志:

    this.map = GoogleMaps.create('map_canvas', {
      debug: true,
      // 其他配置项
    });
    
  • 查看Android Studio Logcat日志
    连接设备或启动模拟器,打开Android Studio的Logcat面板,筛选GoogleMaps或CordovaGoogleMaps标签的日志,获取原生层错误信息(如API密钥验证失败、权限缺失、资源加载失败等)。

  • Chrome DevTools调试网络请求
    在Chrome地址栏输入chrome://inspect,连接设备后选择对应应用,在Network面板查看maps.googleapis.com相关请求,确认是否存在请求失败或错误状态码。

  • 查看Gradle构建日志
    执行构建命令时添加--verbose参数,排查依赖冲突或构建错误:

    ionic cordova build android --verbose
    

内容的提问来源于stack exchange,提问作者anderlaini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:55:12