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

为何firebase-appcheck-debug-testing在SDK 31版本下编译失败?

解决依赖Firebase App Check的SDK 31应用构建问题

一、处理AndroidManifest.xml的android:exported错误

面向Android 12(SDK 31及以上)的应用,所有带有<intent-filter>的组件(Activity、Service、BroadcastReceiver)必须显式声明android:exported属性,取值为true或false,否则会触发清单合并错误。

解决步骤:

  • 打开项目的AndroidManifest.xml,逐一检查所有包含<intent-filter>的<activity>标签,补充android:exported属性:
    • 主Activity(带有android.intent.action.MAIN和android.intent.category.LAUNCHER过滤器)设为android:exported="true",因为需要被系统Launcher启动;
    • 仅内部使用的Activity设为android:exported="false"。
  • 检查合并后的清单:通过Android Studio的Merged Manifest标签查看最终生成的清单,找到依赖库(比如Firebase App Check调试库)中未指定android:exported的Activity,在自己的AndroidManifest.xml中覆盖该组件并补充属性。例如:
    <activity
        android:name="com.google.firebase.appcheck.debug.DebugActivity"
        android:exported="false" />
    

二、处理com.google.android.play.core.client包名冲突警告

这个警告是因为com.google.android.play:integrity:1.0.1和com.google.android.play:core:1.9.1两个库存在包名重叠,属于版本兼容问题。

解决方法:

  • 升级com.google.android.play:core到最新稳定版本:新版Play Core已拆分模块化,避免了包名冲突。在Module级别的build.gradle中更新依赖,例如:
    implementation 'com.google.android.play:core:1.10.3'
    implementation 'com.google.android.play:integrity:1.1.0'
    
  • 若不需要完整的Play Core库,可直接移除com.google.android.play:core依赖,仅保留所需的子模块(比如integrity),因为子模块已包含必要的依赖内容。
  • 执行./gradlew clean build清理构建缓存后重新编译项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:05:37