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

升级Android Studio后Manifest合并报错但APK可正常生成

解决androidx.test.core库Manifest合并报错(未指定android:exported)

核心原因

这些未指定android:exported的Activity属于androidx.test.core测试库的内部组件,你的项目本身无需直接使用,但测试依赖在Manifest合并阶段被引入,触发了Android 12+的强制校验规则。虽然合并后的Manifest仅显示警告,但IDE的构建检查可能误将其判定为错误。

可行解决方案

1. 强制为测试库组件补充exported属性

在主模块的AndroidManifest.xml中,通过tools:node="merge"为这些测试Activity指定android:exported属性:

<manifest ... xmlns:tools="http://schemas.android.com/tools">
    <!-- 处理androidx.test.core的测试Activity -->
    <activity
        android:name="androidx.test.core.app.BootstrapActivity"
        android:exported="false"
        tools:node="merge" />
    <activity
        android:name="androidx.test.core.app.EmptyActivity"
        android:exported="false"
        tools:node="merge" />
    <activity
        android:name="androidx.test.core.app.EmptyFloatingActivity"
        android:exported="false"
        tools:node="merge" />
</manifest>

tools:node="merge"会让Manifest合并工具将你指定的属性与库中组件定义合并,覆盖缺失的android:exported字段。

2. 调整测试依赖作用域

确保androidx.test:core等测试依赖仅存在于androidTestImplementation或testImplementation作用域,避免被纳入主APK的Manifest合并流程:

dependencies {
    // 测试依赖仅放在测试专用作用域
    androidTestImplementation "androidx.test:core:1.5.0"
    androidTestImplementation "androidx.test.ext:junit:1.1.5"
    // ...其他测试依赖
}

若之前误将测试依赖放在implementation作用域,修改后主模块Manifest合并将不再引入这些测试组件。

3. 降低IDE Manifest校验严格度

如果前两种方法无效,可暂时调整IDE检查规则:

  • 打开Android Studio设置(Windows/Linux:File > Settings;Mac:Android Studio > Settings)
  • 导航到Editor > Inspections > Android > Lint > Correctness
  • 找到Missing exported attribute检查项,将严重程度从Error改为Warning或Ignore
  • 点击Apply保存设置

此方法不修复根本问题,但能消除构建时的错误提示,适合临时过渡。

4. 升级至最新版androidx.test.core库

尝试强制指定最新稳定版测试库,新版本可能已修复Manifest缺失android:exported的问题:

androidTestImplementation "androidx.test:core:1.6.0"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:12:03