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

调用isGooglePlayServicesAvailable触发GooglePlayServicesIncorrectManifestValueException求助

解决方案
  • 彻底清理构建缓存
    执行Gradle命令清空所有缓存和旧构建产物,避免残留的Manifest合并数据干扰:

    ./gradlew clean
    ./gradlew :app:cleanBuildCache
    

    完成后重新构建项目,清除可能遗留的旧版本Manifest数据。

  • 硬编码版本值并强制覆盖
    在AndroidManifest.xml的<application>标签内直接写死版本号,同时通过tools:replace确保其他依赖的声明不会覆盖该配置:

    <!-- 需先在Manifest根标签添加 xmlns:tools="http://schemas.android.com/tools" -->
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="12451000"
        tools:replace="android:value" />
    
  • 排查多模块Manifest冲突
    如果项目包含多个模块,检查其他模块的Manifest中是否存在重复的com.google.android.gms.version声明。可通过以下命令生成合并后的完整Manifest:

    ./gradlew :app:processDebugManifest
    

    然后到app/build/intermediates/merged_manifests/debug/AndroidManifest.xml文件中搜索该meta-data标签,确认是否有其他模块注入了低版本值。

  • 临时降级Play Services基础库
    尝试将play-services-basement降级至17.x版本,避开18.x版本可能存在的Manifest合并逻辑bug:

    implementation('com.google.android.gms:play-services-basement:17.6.0') {
        force = true
    }
    
问题拆解

你遇到的异常核心是合并后的Manifest版本值与Google Play Services库预期值不匹配,而首次安装正常、重启触发异常的现象,大概率源于以下原因:

  1. 构建缓存未彻底清理,首次安装应用使用了新的Manifest,但重启后系统读取了缓存中的旧版本数据;
  2. 某个依赖库(即使移除Firebase后)仍在后台注入低版本的com.google.android.gms.version声明,且Manifest合并逻辑未正确覆盖;
  3. Google Play Services 18.x版本的库存在Manifest合并的潜在bug,导致版本值被意外替换。

另外,构建后APK中显示的@ref/0x7f0b000f是编译后的资源引用,可通过aapt dump values app-debug.apk命令查看资源映射,确认该引用对应的实际数值是否为12451000。

内容的提问来源于stack exchange,提问作者Màrius Mora Bosch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:05:47