React Native 0.67.4适配Android 12+:已加android:exported仍报错求助
React Native 0.67.4 Android 12+
android:exported 错误排查方向 - 覆盖所有组件检查:Android 12+要求所有
<activity>、<service>、<receiver>组件都必须显式声明android:exported属性,不只是主Activity。打开Android Studio的「Merged Manifest」面板,全局搜索android:exported,确认每一个上述组件都有明确的true或false值。 - 核对SDK版本配置:检查
android/app/build.gradle中的targetSdkVersion是否设置为31及以上(Android 12对应的最低SDK版本),同时确保compileSdkVersion也匹配对应版本。RN 0.67.4默认targetSdkVersion可能为30,需要手动升级到31才能触发合规检查的正确逻辑。 - 排查第三方依赖:旧版本的RN第三方库(如部分相机、推送、地图类库)的清单文件可能未适配Android 12,导致合并后的清单出现遗漏
android:exported的组件。执行cd android && ./gradlew app:dependencies生成依赖树,定位到可能的老旧库,优先升级到支持Android 12的版本;若无法升级,可在自己的AndroidManifest.xml中用同名组件标签覆盖第三方库的配置,补充android:exported属性。 - 清理编译缓存:缓存可能导致清单合并逻辑异常,执行
cd android && ./gradlew clean清理缓存,回到项目根目录后重新执行npx react-native run-android编译运行。 - 确认intent-filter对应配置:带有
<intent-filter>的组件(如主Activity的LAUNCHER过滤器)必须将android:exported设为true;无外部调用需求的组件(无intent-filter)可设为false,但必须显式声明,不能省略该属性。
内容的提问来源于stack exchange,提问作者squirrelhomie
相关产品推荐
相关产品推荐

