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

Google Map Activity运行报错:设备不支持Google Play Services

解决Google Map Activity报错“MobileMapActivity won't run without Google Play Services”

核心排查与修复方案

1. 确认设备/模拟器的GMS支持情况

  • 模拟器场景:必须使用带Google Play标识的系统镜像创建AVD。创建AVD时,选择Pixel系列等带有Google Play标的镜像(普通Android镜像不含完整GMS),启动后确认Google Play商店可正常打开。
  • 真机场景:国内行货多数预装阉割版系统(无GMS框架),需确认设备是否有Google Play商店(有商店则GMS完整)。部分华为机型因限制无法安装GMS,这类设备无法运行依赖GMS的Google Map应用。

2. 检查项目依赖配置

打开模块级app/build.gradle,确保添加了正确的Google Play Services依赖(使用最新稳定版):

dependencies {
    // Google Maps核心依赖
    implementation 'com.google.android.gms:play-services-maps:18.2.0'
    // 若用到定位功能,添加此依赖
    implementation 'com.google.android.gms:play-services-location:21.0.1'
}

同步Gradle后,确认依赖下载完成。

3. 完善AndroidManifest.xml配置

除API密钥外,需补充GMS版本元数据、必要权限和OpenGL要求:

<!-- 权限声明 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<!-- 要求设备支持OpenGL ES 2.0(Google Map必需) -->
<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

<application ...>
    <!-- GMS版本元数据 -->
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    
    <!-- Google Map API密钥 -->
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="你的API密钥" />
    
    <!-- 你的MobileMapActivity声明 -->
    <activity android:name=".MobileMapActivity" />
</application>

4. 添加GMS可用性检查代码

在MobileMapActivity的onCreate方法中,先检查GMS状态,避免直接崩溃并给出明确提示:

import com.google.android.gms.common.GoogleApiAvailability;
import com.google.android.gms.common.ConnectionResult;
import android.widget.Toast;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    // 检查Google Play Services可用性
    int gmsStatus = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this);
    if (gmsStatus != ConnectionResult.SUCCESS) {
        if (GoogleApiAvailability.getInstance().isUserResolvableError(gmsStatus)) {
            // 弹出修复对话框(如更新GMS)
            GoogleApiAvailability.getInstance().getErrorDialog(this, gmsStatus, 9000).show();
        } else {
            // 设备不支持GMS,提示并关闭页面
            Toast.makeText(this, "此设备不支持Google Play Services", Toast.LENGTH_LONG).show();
            finish();
        }
        return;
    }
    
    // GMS可用,继续初始化地图
    setContentView(R.layout.activity_mobile_map);
    // 你的地图初始化逻辑...
}

5. 其他排查细节

  • 验证API密钥限制:登录Google Cloud控制台,确认Maps SDK for Android的API密钥已绑定正确的包名和SHA-1指纹(debug和release指纹都需添加,测试阶段先确保debug指纹正确)。
  • 清除构建缓存:Android Studio中点击File -> Invalidate Caches... -> Invalidate and Restart,清除缓存后重新构建项目。
  • 真机更新GMS:打开Google Play商店,搜索“Google Play Services”,确保安装最新版本。

内容的提问来源于stack exchange,提问作者K.H. Shihan Nuwanjith Udayanga

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 04:43:21