Task :app:copyReactNativeVectorIconFonts FAILED

4k Views Asked by At

Hello i programing a react-native which assembleDebug work but assembleRealease dont. i dont know why this happen & i solutions on internet dont work

What can i do?

> Task :app:copyReactNativeVectorIconFonts FAILED                                                                                                  

FAILURE: Build failed with an exception.

* What went wrong:
Some problems were found with the configuration of task ':app:copyReactNativeVectorIconFonts' (type 'Copy').
  - Gradle detected a problem with the following location: 'D:\Cosas\UTN\APPMOVIL\HayEquipo\hayEquipo\android\app\build\intermediates\ReactNativeVectorIcons\fonts'.

    Reason: Task ':app:lintVitalReportRelease' uses this output of task ':app:copyReactNativeVectorIconFonts' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed.

    Possible solutions:
      1. Declare task ':app:copyReactNativeVectorIconFonts' as an input of ':app:lintVitalReportRelease'.
      2. Declare an explicit dependency on ':app:copyReactNativeVectorIconFonts' from ':app:lintVitalReportRelease' using Task#dependsOn.
      3. Declare an explicit dependency on ':app:copyReactNativeVectorIconFonts' from ':app:lintVitalReportRelease' using Task#mustRunAfter.       

    Please refer to https://docs.gradle.org/8.0.1/userguide/validation_problems.html#implicit_dependency for more details about this problem.      
  - Gradle detected a problem with the following location: 'D:\Cosas\UTN\APPMOVIL\HayEquipo\hayEquipo\android\app\build\intermediates\ReactNativeVectorIcons\fonts'.

    Reason: Task ':app:lintVitalAnalyzeRelease' uses this output of task ':app:copyReactNativeVectorIconFonts' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed.

    Possible solutions:
      1. Declare task ':app:copyReactNativeVectorIconFonts' as an input of ':app:lintVitalAnalyzeRelease'.
      2. Declare an explicit dependency on ':app:copyReactNativeVectorIconFonts' from ':app:lintVitalAnalyzeRelease' using Task#dependsOn.
      3. Declare an explicit dependency on ':app:copyReactNativeVectorIconFonts' from ':app:lintVitalAnalyzeRelease' using Task#mustRunAfter.      

    Please refer to https://docs.gradle.org/8.0.1/userguide/validation_problems.html#implicit_dependency for more details about this problem.      

BUILD FAILED in 1m 6s
318 actionable tasks: 14 executed, 304 up-to-date
4

There are 4 best solutions below

0
Hitesh Attri On BEST ANSWER

Here is the Patch to this Error: path: "your project folder"/node_modules/react-native-vector-icons/fonts.gradle.

Apply these changes:

afterEvaluate {
// ...

    android.applicationVariants.all { def variant ->
        def targetName = variant.name.capitalize()
        def lintVitalAnalyzeTask = tasks.findByName("lintVitalAnalyze${targetName}")  // here
            if (lintVitalAnalyzeTask) {  // here
                lintVitalAnalyzeTask.dependsOn(fontCopyTask) //here
            } // here
        def generateAssetsTask = tasks.findByName("generate${targetName}Assets")
        generateAssetsTask.dependsOn(fontCopyTask)
    }
}

edit- Upvote if you find this helpful, :)

2
wtmcm On

I encountered the same error and simply ran 'yarn add react-native-vector-icons' in the root folder to fix it.

0
Cjolly On

As of version 10.0.2, I also had to add to the fix above ( first fix was already in 10.0.2 ) :

def lintAnalyzeTask = tasks.findByName("lintAnalyze${targetName}")
    lintAnalyzeTask?.dependsOn(copyReactNativeVectorIconFonts)
0
coolcoolcoolcool On

The accepted answer did not work for me. To circumvent this bug, you must declare explicit task dependencies for the debug and release tasks.

Navigate to node_modules/react-native-vector-icons/fonts.gradle and modify android.applicationVariants.all {...}

    android.applicationVariants.all { def variant ->
        def targetName = variant.name.capitalize()

        def lintAnalyzeDebugTask = tasks.findByName("lintAnalyzeDebug")
        if (lintAnalyzeDebugTask) {
            lintAnalyzeDebugTask.dependsOn(fontCopyTask)
            lintAnalyzeDebugTask.mustRunAfter(fontCopyTask)
        }

        def lintVitalAnalyzeReleaseTask = tasks.findByName("lintVitalAnalyzeRelease")
        if (lintVitalAnalyzeReleaseTask) {
            lintVitalAnalyzeReleaseTask.dependsOn(fontCopyTask)
            lintVitalAnalyzeReleaseTask.mustRunAfter(fontCopyTask)
        }

        def generateAssetsTask = tasks.findByName("generate${targetName}Assets")
        generateAssetsTask.dependsOn(fontCopyTask)
    }