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

React Native构建失败:依赖库未显式配置android:exported属性

解决React Native 0.68 + Android SDK 33下android:exported合并Manifest报错问题

问题背景

自己的React Native应用已经在主Manifest里配置了android:exported="true",但构建时还是报错,原因是第三方依赖(androidx.test相关的Activity)没配置该属性。不想降级到Android SDK 30,因为满足不了编译需求。

环境信息

  • React Native 0.68
  • Android SDK 版本33
  • Android Gradle Plugin 版本7.3.0

报错信息

错误:必须为元素<activity#androidx.test.core.app.InstrumentationActivityInvoker$EmptyActivity>显式指定android:exported。面向Android 12及更高版本的应用,当对应组件定义了intent filter时,必须为android:exported指定明确值。
错误:必须为元素<activity#androidx.test.core.app.InstrumentationActivityInvoker$EmptyFloatingActivity>显式指定android:exported。面向Android 12及更高版本的应用,当对应组件定义了intent filter时,必须为android:exported指定明确值。

解决方案

1. 直接在主Manifest补全缺失的属性

打开项目的android/app/src/main/AndroidManifest.xml,先确保manifest标签里添加了tools命名空间:xmlns:tools="http://schemas.android.com/tools",再添加以下代码强制补全属性:

<activity
    android:name="androidx.test.core.app.InstrumentationActivityInvoker$EmptyActivity"
    android:exported="false"
    tools:node="merge"
    tools:replace="android:exported" />

<activity
    android:name="androidx.test.core.app.InstrumentationActivityInvoker$EmptyFloatingActivity"
    android:exported="false"
    tools:node="merge"
    tools:replace="android:exported" />

这里设为false是因为这些是测试用Activity,不需要对外暴露,完全符合需求。

2. 升级androidx.test.core依赖

这个问题是旧版本的androidx.test.core库未适配Android 12导致的,直接升级依赖就能解决。在android/app/build.gradle里更新依赖版本:

dependencies {
    // 替换成1.5.0及以上版本
    androidTestImplementation 'androidx.test:core:1.5.0'
}

升级后,第三方库的Manifest会自动带上正确的android:exported配置,无需手动补全。

3. 排查其他依赖

如果还有类似报错,打开Android Studio的Manifest编辑器,切换到底部的Merged Manifest标签,搜索android:exported,找到所有未配置的组件,重复步骤1的方式补全即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:15:37