From 40bb2977e3ee799275f8f3fa360f7ac94ccc7ed5 Mon Sep 17 00:00:00 2001 From: Phecda Date: Tue, 19 May 2026 18:48:16 +0800 Subject: [PATCH] fix(android): prepare Nitro headers before native clean Scope this change to react-native-nitro-modules Android prefab cleanup. Ensure prepareHeaders runs after clean and before dependent externalNativeBuildClean tasks so NitroModules prefab headers exist when native clean reads the target metadata. --- .../android/fix-prefab.gradle | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/react-native-nitro-modules/android/fix-prefab.gradle b/packages/react-native-nitro-modules/android/fix-prefab.gradle index d6c010ef7..f69940440 100644 --- a/packages/react-native-nitro-modules/android/fix-prefab.gradle +++ b/packages/react-native-nitro-modules/android/fix-prefab.gradle @@ -14,6 +14,12 @@ tasks.configureEach { task -> afterEvaluate { def abis = reactNativeArchitectures() + def prepareHeadersTask = tasks.named("prepareHeaders") + + prepareHeadersTask.configure { + mustRunAfter(tasks.named("clean")) + } + rootProject.allprojects.each { proj -> if (proj === rootProject) return @@ -28,6 +34,12 @@ afterEvaluate { return } + if (proj != project) { + proj.tasks.matching { it.name.startsWith("externalNativeBuildClean") }.configureEach { cleanTask -> + cleanTask.dependsOn(prepareHeadersTask) + } + } + def variants = proj.android.hasProperty('applicationVariants') ? proj.android.applicationVariants : proj.android.libraryVariants // Touch the prefab_config.json files to ensure that in ExternalNativeJsonGenerator.kt we will re-trigger the prefab CLI to // generate a libnameConfig.cmake file that will contain our native library (.so).