My react native app was running correctly, but suddenly I started getting error:
error 1: Execution failed for task ':react-native-webview:compileDebugKotlin'.
so for this in android/build.gradle I added kotlinVersion = "1.5.31"
and also dependencies added classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31"
.
After this I got the following error:
* What went wrong:
Execution failed for task ':app:mergeDebugNativeLibs'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> More than one file was found with OS independent path 'lib/arm64-v8a/libfbjni.so'. If you are using jniLibs and CMake IMPORTED targets, see https://developer.android.com/studio/preview/features#automatic_packaging_of_prebuilt_dependencies_used_by_cmake
for this, inside android/app/build.gradle under android{...} I added:
packagingOptions {
pickFirst 'lib/x86/libc _shared.so'
pickFirst 'lib/x86_64/libjsc.so'
pickFirst 'lib/arm64-v8a/libjsc.so'
pickFirst 'lib/arm64-v8a/libc _shared.so'
pickFirst 'lib/x86_64/libc _shared.so'
pickFirst 'lib/armeabi-v7a/libc _shared.so'
pickFirst 'lib/armeabi-v7a/libfbjni.so'
}
but even after this I am getting the same error again: More than one file was found with OS independent path 'lib/arm64-v8a/libfbjni.so'
CodePudding user response:
You can add given code in app/build.gradle
. I resolved my error by adding the following code.
android {
defaultConfig {
}
packagingOptions {
pickFirst '**/libjsc.so'
pickFirst '**/libc _shared.so'
pickFirst '**/libfbjni.so'
pickFirst '**/llibturbomodulejsijni.so'
pickFirst '**/libturbomodulejsijni.so'
// Add more according to your error here
}
}
after adding pickFirst '**/libfbjni.so'
i got two more errors so i have added pickFirst '**/llibturbomodulejsijni.so'
and pickFirst '**/libturbomodulejsijni.so'
to resolve my error.
If your app crashes on open then in android/build.gradle
add this
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 {
force "com.facebook.react:react-native:" REACT_NATIVE_VERSION
}
}
}
CodePudding user response:
Based on @BK52 's mentioned github thread, I added this snippet into app/build.gradle
android {
defaultConfig {
// existing code
packagingOptions {
pickFirst '**/libc _shared.so'
pickFirst '**/libfbjni.so'
}
}
}
It worked for me and the error seems to disappear. I am using RN 0.68.2.
CodePudding user response:
Add following lines inside the android>build.gradle file -
allprojects {
repositories {
...
exclusiveContent {
// We get React Native's Android binaries exclusively through npm,
// from a local Maven repo inside node_modules/react-native/.
// (The use of exclusiveContent prevents looking elsewhere like Maven Central
// and potentially getting a wrong version.)
filter {
includeGroup "com.facebook.react"
}
forRepository {
maven {
url "$rootDir/../node_modules/react-native/android"
}
}
}
}
This issue occurred from November 4th 2022. See the reference: enter link description here