执行 com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction 时发生故障

Ton*_*ony 14 gradle build.gradle android-gradle-plugin react-native android-jetifier

由于此错误,我的反应本机项目构建因某种原因失败:

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
Run Code Online (Sandbox Code Playgroud)

有人知道什么可能导致构建失败吗?我没有编辑任何构建文件和/或删除/安装/升级新软件包,谢谢

小智 18

对我来说这有效(阅读托尼的链接后),我的反应版本是 0.66.0
更改了此文件 android\app\build.gradle

implementation "com.facebook.react:react-native:+"  // From node_modules
Run Code Online (Sandbox Code Playgroud)

implementation "com.facebook.react:react-native:0.66.0!!"  // From node_modules
Run Code Online (Sandbox Code Playgroud)


She*_*mir 6

简短回答:

在你的 android/app/build.gradle 中

改变

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

到 ---> (将 0.67.2 替换为您当前的 React Native 版本)

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

长答案:

发生这种情况是因为所有模板都按范围引用 React Native 依赖项,例如implementation 'com.facebook.react:react-native:+'. 通常这种依赖关系会从 ./node_modules/react-native/android 中的本地 Maven 存储库中解决,但由于它已发布到 Maven Central,因此现在可以获取最新的 RC。

implementation 'com.facebook.react:react-native:0.67.2!!'您可以通过在应用程序的 Gradle 文件中使用类似的内容强制 React Native 依赖于您期望的版本来解决此问题。!!如果您的项目或其传递依赖项依赖于较新的版本,则这是限制 Gradle 升级的简写。