升级后React Native Android构建缓慢,generateDebugRFile如何优化?
React Native Android 构建
generateDebugRFile任务优化方案 - 开启非传递R类生成
在项目android/gradle.properties文件中添加配置android.nonTransitiveRClass = true,该配置是AGP 7.0及以上版本官方推荐开启的优化项,开启后每个模块的R类只会包含当前模块自身的资源引用,不会合并所有依赖库的资源,可大幅降低R类的生成计算量,是该任务最有效的优化手段。 - 开启构建缓存与增量编译
在android/gradle.properties中添加以下配置:
开启后未修改资源的情况下不会重新执行R文件生成任务,并行构建也会加快多模块资源的处理效率。org.gradle.caching = true org.gradle.parallel = true android.enableIncrementalR.java = true - 精简打包资源范围
在android/app/build.gradle的defaultConfig块中添加resConfigs配置,仅保留你需要的语言、屏幕密度等资源,示例:
同时可以通过lint清理项目中未使用的废弃资源,减少总资源数,降低R类的条目生成耗时。defaultConfig { // 其他原有配置 resConfigs "zh", "en", "xxhdpi" } - 适配稳定的AGP版本
部分AGP版本存在generateDebugRFile的已知性能缺陷,比如AGP 7.2.x的部分小版本,可根据你当前使用的React Native版本,将Android Gradle Plugin升级至7.4+稳定版,或降级至7.1.x长期支持版本,规避版本自身的性能问题。 - 固定依赖版本
避免在build.gradle中使用implementation 'com.xxx:lib:+'这类动态版本号依赖,动态版本会触发每次构建时拉取最新依赖资源,导致R文件反复重生成,所有依赖固定明确版本号即可避免该问题。
内容的提问来源于stack exchange,提问作者Artur Eshenbrener
相关产品推荐
相关产品推荐

