【问题标题】:Execution failed for task ':app:mergeDebugNativeLibs'. in react native任务 ':app:mergeDebugNativeLibs' 执行失败。在本机反应
【发布时间】:2020-09-25 18:19:31
【问题描述】:

我将 react-native-pdf 安装到我的项目中,当我使用“npx react-native run-android”运行时发生失败并显示如下错误

* 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/x86/libc++_shared.so'

任何人都可以帮助我使用包 react-native-pdf

【问题讨论】:

    标签: android react-native gradle react-native-pdf


    【解决方案1】:

    我遇到了同样的问题,我通过将以下内容添加到 android/app/build.gradle 解决了它

    android {
    
    packagingOptions {
        pickFirst 'lib/x86/libc++_shared.so'
        pickFirst 'lib/x86_64/libc++_shared.so'
        pickFirst 'lib/armeabi-v7a/libc++_shared.so'
        pickFirst 'lib/arm64-v8a/libc++_shared.so'
    }
    
    /** rest of your code here **/
    

    }

    【讨论】:

    • 有谁知道我们为什么需要这样做?真的不喜欢gradle这个工具,没有解释……
    • 给人的印象是,包含 react native pdf reader library 会以某种方式引入这些文件的其他版本,并且您是在告诉编译器要查看哪些文件?
    【解决方案2】:

    在 Android Studio android 中打开项目并清理项目 Build -> Clean Project

    【讨论】:

    • 谢谢.. 这只是一个陈旧的环境。运行 flutter -clean 有效。
    【解决方案3】:

    将此代码添加到“/android/app/build.gradle”

    android {
      packagingOptions {
          pickFirst 'lib/x86/libc++_shared.so'
          pickFirst 'lib/x86_64/libc++_shared.so'
          pickFirst 'lib/armeabi-v7a/libc++_shared.so'
          pickFirst 'lib/arm64-v8a/libc++_shared.so'
      }
      /** .... **/
    }
    

    所以在终端上运行这个

    $ cd android/
    $ ./gradlew cleanBuildCache
    $ cd ..
    $ sudo npx react-native run-android
    

    【讨论】:

      【解决方案4】:

      我在“android/app/build.gradle”中将 minSdkVersion 更改为 21。

      defaultConfig {
              // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
              applicationId "com.example.custom_epub_view"
              minSdkVersion 21
              targetSdkVersion 29
              versionCode flutterVersionCode.toInteger()
              versionName flutterVersionName
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-27
        • 1970-01-01
        • 1970-01-01
        • 2023-01-23
        • 2022-11-11
        • 2020-03-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多