更新后React Native Android SDK Build Tools版本警告问题
你遇到的问题是明明配置了buildToolsVersion "34.0.0",但Sync时却提示系统在使用33.0.0,这大概率是项目中存在多处配置冲突或者被默认脚本覆盖了,以下是具体排查和解决步骤:
排查方向与解决步骤
1. 检查所有build.gradle文件的配置
React Native项目存在项目级和模块级两个核心build.gradle文件,逐个确认:
- 根目录下的
build.gradle:检查buildscript块内是否有旧版本的buildToolsVersion配置; app/build.gradle:确保android块内的buildToolsVersion "34.0.0"没有被注释或写错;- 如果有其他自定义模块,也要检查对应模块的build.gradle文件。
2. 检查React Native自带的gradle脚本
React Native的react.gradle脚本(位于node_modules/react-native/下)可能会默认指定Build Tools版本。搜索该文件中的buildToolsVersion,如果发现硬编码了33.0.0,可以通过以下方式强制覆盖:
在app/build.gradle的android块中明确声明版本:
android { buildToolsVersion "34.0.0" // 其他原有配置... }
或者在根目录build.gradle中统一覆盖所有子项目的配置:
subprojects { afterEvaluate { project -> if (project.hasProperty("android")) { android { buildToolsVersion "34.0.0" } } } }
注意:直接修改node_modules内的文件会在npm install后被覆盖,所以优先用上述覆盖方式。
3. 清理Gradle缓存与重启IDE
Gradle缓存可能保留了旧的配置信息,执行以下命令清理:
./gradlew cleanBuildCache ./gradlew clean
清理完成后重启Android Studio,再执行Sync Project操作。
4. 确认SDK Build Tools 34.0.0已安装
打开Android Studio的SDK Manager(File > Settings > Appearance & Behavior > System Settings > Android SDK),切换到SDK Tools标签,勾选「Show Package Details」,找到Android SDK Build Tools 34.0.0,确保该版本已被安装。
5. 可选:移除手动指定的buildToolsVersion
从AGP 7.0版本开始,Gradle会自动匹配与当前AGP版本兼容的Build Tools版本,无需手动指定。如果你使用的AGP是8.1.1,可以直接删除所有build.gradle文件中的buildToolsVersion配置,让系统自动选择合适的版本,从根源避免版本冲突。
内容的提问来源于stack exchange,提问作者siodev

