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

React Native Android构建失败:Kotlin版本冲突与Unimodules问题

问题分析与解决方案

核心问题根源

你的问题是Expo 38.x与React Native 0.62.2的依赖适配冲突,同时伴随Kotlin版本不兼容问题:

  1. 最初的Kotlin版本冲突:Expo 38.x依赖的部分模块(如expo-splash-screen)使用较低版本的Kotlin,你手动指定的1.6.10版本过高,导致类路径中版本不一致。
  2. 后续的CookieManagerModule错误:unimodules-react-native-adapter与RN 0.62.2的NativeModule接口不匹配,RN 0.62.x的NativeModule新增了invalidate()方法要求,但旧版本的unimodules未实现该方法。

分步解决方案

1. 修复Kotlin版本冲突

不要手动指定过高的Kotlin版本,Expo 38.x适配的Kotlin版本为1.3.72,在项目根目录的build.gradle中配置:

buildscript {
    dependencies {
        // 替换为适配的Kotlin版本
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72'
    }
}

2. 解决CookieManagerModule的invalidate()方法问题

由于Expo 38.x的unimodules-react-native-adapter版本与RN 0.62.2不兼容,需强制更新该模块到适配版本:

  • 在项目根目录的build.gradle中添加强制依赖配置:
allprojects {
    repositories {
        // ... 保留原有仓库配置
    }

    configurations.all {
        resolutionStrategy.force 'com.facebook.react:react-native:0.62.2'
        resolutionStrategy.force 'unimodules:unimodules-react-native-adapter:5.4.0'
    }
}
  • 清理缓存并重新安装依赖:
# 删除旧依赖与锁文件
rm -rf node_modules package-lock.json yarn.lock
# 重新安装依赖
npm install
# 清理Android构建缓存
cd android && ./gradlew clean

3. 验证构建

执行Android构建命令,检查问题是否解决:

cd android && ./gradlew assembleDebug

补充建议

Expo 38.x与RN 0.62.2均已停止维护,长期来看建议逐步升级到更高版本的Expo和React Native,避免后续出现更多依赖兼容问题。

内容的提问来源于stack exchange,提问作者Michael Amadheo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:15:40