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

React Native升级targetSdkVersion至31后Android12包解析问题求助

React Native升级targetSdkVersion到31后Android 12解析包错误修复方案

问题核心原因

Android 12(API 31)强制要求所有带有<intent-filter>的组件(Activity、Service、Receiver)必须显式声明android:exported属性,同时编译环境版本需与targetSdkVersion匹配,你的配置中存在未补全属性、编译版本不匹配的问题。

具体修复步骤

1. 统一编译版本配置

修改项目级build.gradle,确保compileSdkVersion与targetSdkVersion一致,并升级匹配的buildToolsVersion:

buildscript {
    ext {
        buildToolsVersion = "31.0.0" // 升级到API31对应的构建工具版本
        minSdkVersion = 21
        compileSdkVersion = 31 // 必须与targetSdkVersion保持一致
        targetSdkVersion = 31
        ndkVersion = "20.1.5948944"
        googlePlayServicesVersion = "+"
    }
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:7.0.4") // 升级到支持API31的gradle版本
        classpath('com.google.gms:google-services:4.3.3')
    }
}

同时更新gradle/wrapper/gradle-wrapper.properties中的gradle版本:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip

2. 补全所有组件的android:exported属性

检查AndroidManifest.xml,为所有带<intent-filter>或可能被外部调用的组件添加该属性:

(1)Facebook相关Activity

<activity android:name="com.facebook.FacebookActivity"
    android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
    android:label="@string/app_name"
    android:exported="false" /> <!-- 添加此属性,非对外暴露设为false -->

(2)调试用DevSettingsActivity

<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"
    android:exported="false" /> <!-- 添加此属性,调试组件设为false -->

(3)推送相关Receiver

<receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationActions"
    android:exported="false" /> <!-- 添加此属性 -->
<receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher"
    android:exported="false" /> <!-- 添加此属性 -->

3. 清理缓存并重新构建

执行以下命令清理旧构建缓存,重新编译项目:

cd android
./gradlew clean
./gradlew assembleRelease

验证要点

  • 所有带有<intent-filter>的组件必须明确设置android:exported为true或false
  • compileSdkVersion必须与targetSdkVersion完全一致
  • Gradle构建工具版本需支持对应API级别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:05:21