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

升级React Native 59.8与Gradle5.1后assembleRelease构建失败求助

解决React Native升级后assembleRelease构建失败问题

你遇到的问题核心是第三方库react-native-app-settings的Android配置和你项目的高版本SDK不兼容——这个库的编译SDK版本大概率低于你项目设置的28,导致合并资源时找不到Android 9(API 28)新增的属性(比如dialogCornerRadius、fontVariationSettings)。而bundleRelease和assembleRelease的资源处理逻辑存在差异,才会出现前者成功后者失败的情况。

下面是几个可行的解决办法:

方法一:强制所有第三方库使用项目统一的SDK版本

这是最省心的持久化方案,无需修改第三方库源码。在项目根目录的build.gradle文件中,找到allprojects块,添加以下配置:

allprojects {
    repositories {
        // 保留你原本的仓库配置,比如google()、jcenter()等
    }

    // 新增这段代码
    afterEvaluate { project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

这段代码会强制所有子模块(包括node_modules里的第三方库)使用你项目根配置定义的compileSdkVersion和buildToolsVersion,让资源编译时匹配API 28的属性。

方法二:手动修改第三方库配置(临时方案)

如果方法一暂时不生效,你可以直接修改react-native-app-settings的Android配置:

  1. 找到node_modules/react-native-app-settings/android/build.gradle文件
  2. 将其中的compileSdkVersion改为28,buildToolsVersion改为28.0.3
  3. 执行./gradlew clean清理缓存,再运行./gradlew assembleRelease

⚠️ 注意:这个方法的缺点是每次执行npm install或yarn install后,修改内容会被覆盖,需要重新操作。如果要持久化修改,可以使用patch-package工具生成补丁,下次安装依赖时自动应用。

方法三:升级或替换第三方库

尝试更新react-native-app-settings到最新版本,查看作者是否已修复SDK版本适配问题。如果没有合适的更新版本,你可以考虑:

  • Fork这个库,自行修改Android配置后发布使用
  • 寻找功能类似、已适配高版本SDK的替代库

最后,执行构建前记得先清理缓存:

./gradlew clean
./gradlew assembleRelease

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:44:13