A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction
Asked Answered
A

8

14

My react native project build fails somehow because of this error:

Execution failed for task ':app:mergeDebugNativeLibs'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction
   > 2 files found with path 'lib/arm64-v8a/libfbjni.so' from inputs:
      - C:\Users\Antonio\.gradle\caches\transforms-3\7cca348744e25f57fc2d9f871aa73c9a\transformed\jetified-react-native-0.71.0-rc.0-debug\jni\arm64-v8a\libfbjni.so
      - C:\Users\Antonio\.gradle\caches\transforms-3\08b0f5c7017bf081f79b63ea5b053dc0\transformed\jetified-fbjni-0.3.0\jni\arm64-v8a\libfbjni.so
     If you are using jniLibs and CMake IMPORTED targets, see
     https://developer.android.com/r/tools/jniLibs-vs-imported-targets

Anybody got a clue what could cause the build to fail? I haven't edited any build file and/or removed/installed/upgraded new packages thanks

Assimilative answered 5/11, 2022 at 5:54 Comment(0)
M
18

For me this worked (after reading Tony's link), my version of react was 0.66.0
Changed this file android\app\build.gradle

implementation "com.facebook.react:react-native:+"  // From node_modules

to

implementation "com.facebook.react:react-native:0.66.0!!"  // From node_modules
Mohr answered 5/11, 2022 at 22:46 Comment(1)
I spent almost 4 hours to fix this issue but no luck. But your solution saved my day.Loricate
S
6

Short answer:

in your android/app/build.gradle

change

implementation 'com.facebook.react:react-native:+'

to ---> (replace 0.67.2 with your current react native version)

implementation 'com.facebook.react:react-native:0.67.2!!'

Long answer:

This is happening because all the templates reference the React Native dependency by range, like implementation 'com.facebook.react:react-native:+'. Usually this dependency gets resolved from the local Maven repo in ./node_modules/react-native/android but since it has been published to Maven Central it's now grabbing the very latest RC.

You can resolve this problem by forcing the React Native dependency to the version you expect with something like this implementation 'com.facebook.react:react-native:0.67.2!!' in your app's Gradle file. The !! is shorthand for restricting Gradle from upgrading if your project or its transitive dependencies depend on a newer version.

Saintjust answered 8/11, 2022 at 11:23 Comment(0)
N
2

work for me, if your react native application version >= 0.63 you can update the patch version which should fix your problem.

link: https://github.com/facebook/react-native/issues/35210#:~:text=We%20have%20prepared%20releases%20for%20all%20the%20main%20versions%20of%20react%2Dnative%20with%20an%20hotfix%3A

if not just go to android/build.gradle and then in the allprojects object add the following code with the current version of react native in package.json

configurations.all {
 resolutionStrategy {
  force 'com.facebook.react:react-native:CURRENT_VERSION_OF_REACT_NATIVE'
 }
}
Noodlehead answered 7/11, 2022 at 10:33 Comment(0)
C
1

Here's a workaround to fix this problem if you are not using latest version of react-native. https://github.com/facebook/react-native/issues/35210

Chaco answered 5/11, 2022 at 23:13 Comment(0)
S
1

Go to android folder -> build.gradle file -> inside allprojects object and add following code. Add react native version from node_modules -> react-native -> package.json // "version": "0.68.2".

configurations.all {
    resolutionStrategy {
        force 'com.facebook.react:react-native:0.68.2'
    }
}

See fb/rn#35204

Soosoochow answered 6/11, 2022 at 21:30 Comment(0)
L
1

This is the Official recommended fix!

Found through this issue: https://github.com/facebook/react-native/issues/35210.

Copied from this PR here

For my RN 0.66.0 project I only had to add theses lines:

allprojects {
    repositories {
        exclusiveContent {
            // Official recommended fix for Android build problem with React Native versions below 0.71
            // https://github.com/facebook/react-native/issues/35210
            // TODO: remove this exclusiveContent section when we upgrade to React Native 0.71 (or above)
            // copied from https://github.com/Scottish-Tech-Army/Volunteer-app/pull/101/commits/40a30310ee46194efbaf1c07aef8a0df70231eeb
            filter {
                includeGroup "com.facebook.react"
            }
            forRepository {
                maven {
                    url "$rootDir/../node_modules/react-native/android"
                }
            }
        }
    }
}
Leialeibman answered 8/11, 2022 at 19:55 Comment(0)
H
0

I had the same issue. There is a new patch for react-native now so update it in your package.json.

Mine is

"react-native": "^0.70.3"

and I changed it to

"react-native": "^0.70.5"

which worked for me

Hawaii answered 7/11, 2022 at 19:35 Comment(0)
B
0

The answer lies here depending on the version of your react native. Patches are available for RN version 0.63 and up

https://github.com/facebook/react-native/issues/35210

Tips:

  • Don't just update react-native package, do an npm install
  • Clean gradle before running the app
  • Only add the code below IF your react native version is < 0.63
def REACT_NATIVE_VERSION = new File(['node', '--print',"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version"].execute(null, rootDir).text.trim())

allprojects {
    configurations.all {
        resolutionStrategy {
            // Remove this override in 0.65+, as a proper fix is included in react-native itself.
            force "com.facebook.react:react-native:" + REACT_NATIVE_VERSION
        }
    }
}
Background answered 8/11, 2022 at 5:40 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.