首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >失败的构建反应本机应用程序:mergeDexRelease

失败的构建反应本机应用程序:mergeDexRelease
EN

Stack Overflow用户
提问于 2022-05-18 15:21:37
回答 2查看 222关注 0票数 0

调试版本编译得很好,但是在任务应用程序上发布失败:mergeDexRelease。

  1. :到目前为止,我尝试了排除gradle中的组,但没有成功。
  2. 也检查了这个Failed to build a React Native signed release,但是对于如何解决这个问题没有直接的答案。
  3. 我清理了gradle缓存,构建了文件夹,删除了node_modules和yarn.lock,并恢复了
  4. --我尝试重新启动pc

G 210

同样的错误出现在3个包中:react本机屏幕、react本机-安全区域-上下文、react本机-手势-处理程序。

代码语言:javascript
运行
复制
Caused by: com.android.tools.r8.internal.a: Type com.facebook.react.viewmanagers.RNGestureHandlerButtonManagerDelegate is defined multiple times: /Users/user/Projects/app/android/app/build/intermediates/project_dex_archive/release/out/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.dex, /Users/user/Projects/app/node_modules/react-native-gesture-handler/android/build/.transforms/8bd7a67ad8066031ac26f199a2fda1a8/transformed/classes/classes.dex
    at com.android.tools.r8.internal.tQ.a(R8_3.2.47_ebadcf1df6fbed6005a238b8399b2cd411e753b60758261060e399f9498872a5:14)
    at com.android.tools.r8.internal.tQ.a(R8_3.2.47_ebadcf1df6fbed6005a238b8399b2cd411e753b60758261060e399f9498872a5:22)
    at com.android.tools.r8.internal.xK.b(R8_3.2.47_ebadcf1df6fbed6005a238b8399b2cd411e753b60758261060e399f9498872a5:7)
    at com.android.tools.r8.internal.xK.a(R8_3.2.47_ebadcf1df6fbed6005a238b8399b2cd411e753b60758261060e399f9498872a5:23)
    at com.android.tools.r8.internal.xK.a(R8_3.2.47_ebadcf1df6fbed6005a238b8399b2cd411e753b60758261060e399f9498872a5:10)
    at java.base/java.util.concurrent.ConcurrentHashMap.merge(ConcurrentHashMap.java:2048)
    at com.android.tools.r8.internal.xK.a(R8_3.2.47_ebadcf1df6fbed6005a238b8399b2cd411e753b60758261060e399f9498872a5:6)
    at com.android.tools.r8.graph.z2$a.e(R8_3.2.47_ebadcf1df6fbed6005a238b8399b2cd411e753b60758261060e399f9498872a5:4)
    at com.android.tools.r8.dex.b.a(R8_3.2.47_ebadcf1df6fbed6005a238b8399b2cd411e753b60758261060e399f9498872a5:105)
    at com.android.tools.r8.dex.b.a(R8_3.2.47_ebadcf1df6fbed6005a238b8399b2cd411e753b60758261060e399f9498872a5:28)
    at com.android.tools.r8.D8.a(R8_3.2.47_ebadcf1df6fbed6005a238b8399b2cd411e753b60758261060e399f9498872a5:26)
    at com.android.tools.r8.D8.d(R8_3.2.47_ebadcf1df6fbed6005a238b8399b2cd411e753b60758261060e399f9498872a5:593)
    at com.android.tools.r8.D8.b(R8_3.2.47_ebadcf1df6fbed6005a238b8399b2cd411e753b60758261060e399f9498872a5:1)
    at com.android.tools.r8.internal.ci.a(R8_3.2.47_ebadcf1df6fbed6005a238b8399b2cd411e753b60758261060e399f9498872a5:24)
    ... 36 more ```
EN

回答 2

Stack Overflow用户

发布于 2022-05-19 10:51:30

正如错误所指示的,然后多次定义类com.facebook.react.viewmanagers.RNGestureHandlerButtonManagerDelegate。据我所见,它是在应用程序本身(/Users/user/Projects/app/android/app/build/intermediates/project_dex_archive/release/out/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.dex)和模块(/Users/user/Projects/app/node_modules/react-native-gesture-handler/android/build/.transforms/8bd7a67ad8066031ac26f199a2fda1a8/transformed/classes/classes.dex)中定义的。您必须确保没有两个定义。

这在调试模式下工作的原因是,应用程序的构建不会对DEX进行完全合并,而只是将许多DEX文件复制到调试APK中。

对于D8/R8引用,还原的堆栈跟踪是

代码语言:javascript
运行
复制
Caused by: com.android.tools.r8.utils.AbortException: Type com.facebook.react.viewmanagers.RNGestureHandlerButtonManagerDelegate is defined multiple times: /Users/user/Projects/app/android/app/build/intermediates/project_dex_archive/release/out/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.dex, /Users/user/Projects/app/node_modules/react-native-gesture-handler/android/build/.transforms/8bd7a67ad8066031ac26f199a2fda1a8/transformed/classes/classes.dex
    at com.android.tools.r8.utils.Reporter.handleDiagnostic(Reporter.java:81)
    at com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:127)
    at com.android.tools.r8.utils.ProgramClassCollection.reportDuplicateTypes(ProgramClassCollection.java:74)
    at com.android.tools.r8.utils.ProgramClassCollection.lambda$defaultConflictResolver$1(ProgramClassCollection.java:68)
    at com.android.tools.r8.utils.ProgramClassCollection.lambda$create$0(ProgramClassCollection.java:28)
    at java.base/java.util.concurrent.ConcurrentHashMap.merge(ConcurrentHashMap.java:2048)
    at com.android.tools.r8.utils.ProgramClassCollection.create(ProgramClassCollection.java:27)
    at com.android.tools.r8.graph.LazyLoadedDexApplication$Builder.build(LazyLoadedDexApplication.java:266)
    at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:184)
    at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:134)
    at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:104)
    at com.android.tools.r8.D8.readApp(D8.java:177)
    at com.android.tools.r8.D8.run(D8.java:201)
    at com.android.tools.r8.D8.lambda$run$1(D8.java:126)
    at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:80)
票数 0
EN

Stack Overflow用户

发布于 2022-05-19 23:14:37

回答我自己的问题,关键是从app/build gradle中删除app/build gradle。我还从react {}中删除了app/build.gradle块。

可以关闭。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72291876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档