react native 出现 FATAL EXCEPTION: OkHttp Dispatcher

react native 出现 FATAL EXCEPTION: OkHttp Dispatcher

报错信息

复制代码
 FATAL EXCEPTION: OkHttp Dispatcher
  Process: , PID: 8868
   java.lang.NoSuchMethodError: No virtual method toString(Z)Ljava/lang/String; in class Lokhttp3/Cookie; or its 
   super classes (declaration of 'okhttp3.Cookie' appears in /data/app/~~jJHvA-
   QIVyqleQgWxDDo2A==/com.bestwond.bigapp-BKzRyAI_ofmJB2eguJfYAA==/base.apk)

错误原因

复制代码
你的项目中至少有两个不同的库分别依赖了不同大版本的 OkHttp:
1.React Native 本身:新版本的 RN (>= 0.63) 通常依赖 OkHttp 4.x。
2.某个第三方库:你安装的某个第三方库(如 react-native-webview, @react-native-community/netinfo, 或其他网络相关的库)依赖了旧的 OkHttp 3.x。
编译时一切正常,但运行时手机只加载了一个版本的 OkHttp(通常是旧版本),导致 RN 网络模块找不到它需要的新版本中的方法(这里是 Cookie.toString(Z) 方法),从而引发 NoSuchMethodError 致命异常。

解决方案

解决方案:强制统一 OkHttp 版本

你需要在你项目的 android/app/build.gradle 文件中,强制所有依赖都使用同一个版本的 OkHttp。

请按照以下步骤操作:

1.打开文件:找到你 React Native 项目中的 android/app/build.gradle 文件。

2.添加配置:在 dependencies 块中,在最前面添加以下强制依赖解析策略:

复制代码
dependencies {
    // !!! 强制统一 OkHttp 版本,解决 FATAL EXCEPTION !!! 
    implementation(platform("com.squareup.okhttp3:okhttp-bom:4.10.0")) // 使用BOM统一管理版本
    implementation("com.squareup.okhttp3:okhttp")
    implementation("com.squareup.okhttp3:okhttp-urlconnection")
    implementation("com.squareup.okhttp3:logging-interceptor")
    // !!! 结束 !!!

    // ... 你原有的其他依赖项
    implementation("com.facebook.react:react-android")
    implementation("org.webkit:android-jsc:+")
    // ... 其他 project(...) 依赖
}
相关推荐
学前端搞口饭吃5 小时前
React props的使用
前端·javascript·react.js
kk不中嘞1 天前
浅谈前端框架
前端·vue.js·react.js·前端框架
qczg_wxg1 天前
高阶组件介绍
开发语言·javascript·react native·ecmascript
小鱼儿亮亮1 天前
二、React基础精讲:编写TodoList、事件绑定、JSX语法、组件之间传值
前端·react.js
小鱼儿亮亮1 天前
五、Redux进阶:UI组件、容器组件、无状态组件、异步请求、Redux中间件:Redux-thunk、redux-saga,React-redux
前端·react.js
wordbaby1 天前
解锁时光机:用 React Hooks 轻松实现 Undo/Redo 功能
前端·react.js
LFly_ice2 天前
学习React-9-useSyncExternalStore
javascript·学习·react.js
醉方休2 天前
React中使用DDD(领域驱动设计)
前端·react.js·前端框架
学习3人组2 天前
React 样式隔离核心方法和最佳实践
前端·react.js·前端框架