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

AAPT报错找不到android:attr/windowSplashScreenBackground属性如何解决

问题根因

这些windowSplashScreen*属性是Android 12(API 31)才新增的系统属性,资源链接失败说明你的项目实际编译时依赖的API版本低于31,哪怕你本地装了SDK Platform 31也不生效。

修复步骤
  • 第一步:修改编译SDK版本配置
    打开你React Native项目的android/build.gradle(项目根Gradle配置文件),修改全局版本参数:
buildscript {
    ext {
        compileSdkVersion = 31
        targetSdkVersion = 31
        buildToolsVersion = "31.0.0"
    }
}

如果报错的第三方库(比如react-native-splash-screen)强制指定了低版本编译SDK,你可以在同一份根Gradle文件末尾添加全局覆写配置,强制所有子模块使用31版本编译:

subprojects {
    afterEvaluate { project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 31
                buildToolsVersion "31.0.0"
            }
        }
    }
}
  • 第二步:拆分样式文件做版本适配
    你现在直接在通用styles.xml里添加Android 12专属属性,会导致低版本场景编译异常,需要拆分配置:
  1. 在android/app/src/main/res/目录下新建values-v31文件夹
  2. 在values-v31文件夹内新建专属styles.xml,仅在这里添加Android 12的闪屏属性:
<item name="android:windowBackground">@drawable/splash</item>
<item name="android:windowSplashScreenBackground">@drawable/splash</item>
<item name="android:windowSplashScreenAnimatedIcon">@null</item>
  1. 回到原来的通用values/styles.xml,删除里面的windowSplashScreenBackground、windowSplashScreenAnimatedIcon这两个Android 12专属属性,仅保留低版本兼容的配置。
  • 第三步:清理缓存重新构建
    执行以下命令清除旧的构建缓存,避免缓存的旧资源导致报错:
cd android
./gradlew clean
rm -rf ~/.gradle/caches/

清理完成后重新运行项目即可。

额外注意

如果后续不需要使用alpha版的splashscreen兼容库,可以升级到core-splashscreen的正式稳定版,避免alpha版本的兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:06:02