You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native打包APK遇com.swmansion.common.GestureHandlerStateManager重复定义错误

解决React Native Release打包Dex合并冲突(com.swmansion.common.GestureHandlerStateManager重复定义)

针对你遇到的Release打包时Dex合并失败、类重复定义的问题,可尝试以下几种解决方案:

1. 调整依赖版本适配React Native版本

你的React Native版本是0.70.7,而react-native-reanimated 3.x系列要求最低RN版本为0.71.0,版本不兼容可能是导致类重复定义的核心原因。建议降级reanimated到RN0.70.x兼容的版本:

  • 执行命令卸载当前版本:npm uninstall react-native-reanimated
  • 安装适配版本:npm install react-native-reanimated@2.12.0
  • 重新执行npx pod-install(iOS端)和清理gradle缓存后再打包

2. 配置Gradle强制统一依赖或排除重复类

如果不想降级版本,可在Android项目中通过Gradle配置处理重复类:

方法A:强制统一依赖版本

在android/build.gradle的allprojects块中添加resolutionStrategy,强制指定两个库的版本:

allprojects {
    repositories {
        // 你的仓库配置
    }
    configurations.all {
        resolutionStrategy {
            force 'com.swmansion.gesture-handler:gesture-handler:2.9.0'
            force 'com.swmansion.reanimated:reanimated:3.0.0'
        }
    }
}

方法B:通过packagingOptions忽略重复类

在android/app/build.gradle的android块中添加packagingOptions,忽略重复的类文件:

android {
    // 其他配置
    packagingOptions {
        pickFirst 'com/swmansion/common/GestureHandlerStateManager.class'
    }
}

3. 彻底清理缓存后重新构建

有时候缓存残留也会导致这类问题,执行以下步骤:

  • 清理node_modules:rm -rf node_modules && npm install
  • 清理Android缓存:cd android && ./gradlew clean && rm -rf .gradle && rm -rf build
  • 重新打包:./gradlew assembleStagingRelease

内容的提问来源于stack exchange,提问作者Vaibhav Rathore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 18:03:01