首页 > 解决方案 > 在不同依赖项之间的 values.xml 上 React Native 构建错误重复键

问题描述

我已经在搜索与此问题相关的一些信息。当我使用com.midtrans:uikit:1.21.2然后:react-native-camera运行构建脚本时,发生了这个错误。

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource compilation failed
  Output:  /rootProject/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:492: error: duplicate value for resource 'attr/aspectRatio' with config ''.
  /rootProject/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:492: error: resource previously defined here.

  Command: /userRoot/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.1-4818971-osx.jar/26099ef957fce779fbc384e01d71f8d6/aapt2-3.2.1-4818971-osx/aapt2 compile --legacy \
          -o \
          /rootProject/android/app/build/intermediates/res/merged/debug \
          /rootProject/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml
  Daemon:  AAPT2 aapt2-3.2.1-4818971-osx Daemon #0
  Output:  /userRoot/.gradle/caches/transforms-1/files-1.1/cardview-v7-26.1.0.aar/f44a4b5427df6e671eadd76860228e04/res/values/values.xml:7:5-685: AAPT: error: duplicate value for resource 'attr/aspectRatio' with config ''.

  /userRoot/.gradle/caches/transforms-1/files-1.1/cardview-v7-26.1.0.aar/f44a4b5427df6e671eadd76860228e04/res/values/values.xml:7:5-685: AAPT: error: resource previously defined here.

  Command: /userRoot/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.1-4818971-osx.jar/26099ef957fce779fbc384e01d71f8d6/aapt2-3.2.1-4818971-osx/aapt2 compile --legacy \
          -o \
          /rootProject/android/app/build/intermediates/res/merged/debug \
          /rootProject/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml
  Daemon:  AAPT2 aapt2-3.2.1-4818971-osx Daemon #0

这个错误是指这一行rootProject/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml 在此处输入图像描述

然后我发现如果有多个具有相同值的键。

  1. react-native-camera android/src/main/res/value/attrs.xml带钥匙的资源<attr format="string" name="aspectRatio"/>
  2. com.midtrans:uikit uikit/src/main/res/value/attrs.xml带钥匙的资源<attr format="float" name="aspectRatio"/>

我需要帮助来修复此错误,或者需要任何信息来修复/避免这种情况。我检查了一些线程。

  1. React Native:错误:重复资源 - Android
  2. 无法构建android(因为重复的依赖?)
  3. React Native 错误:在 android 版本 APK 中重复资源、资产进入某些屏幕而其他屏幕没有出现

任何帮助将不胜感激。

标签: androidreactjsreact-native

解决方案


您可能感兴趣的几个解决方案:

  1. 将 GitHub 中的 react-native-camera fork 到你的,并修改 styles.xml 和 attrs.xml 并将其添加到你的 react native 项目中。

  2. 在此处使用来自 com.midtrans 的其他分叉项目。Veritrans 已明确表示他们不会支持 react-native 项目,并且可能不会合并此拉取请求。

我会推荐解决方案 1。我已经分叉并修改了资源值,并对其他资源值进行了一些修改,以满足我的需求。随意看看:这里


推荐阅读