Ionic 6添加firebasex插件后ionic-native/http无法正常工作求助
问题原因
该问题是OkHttp版本冲突导致的:
你项目中cordova-plugin-advanced-http(即@ionic-native/http对应的底层原生插件)固定指定了OKHTTP_VERSION = 3.10.0,而新增的cordova-plugin-firebasex依赖高版本Firebase SDK,内部使用的OkHttp版本远高于3.10.0,两个版本不兼容会导致HTTP请求初始化失败,请求无法发出,最终仅返回超时错误。
解决方案
按以下步骤操作即可解决:
步骤1:统一OkHttp版本配置
修改cordova-plugin-advanced-http的OkHttp版本,和firebasex依赖的版本对齐,执行以下命令重新安装该插件:
ionic cordova plugin rm cordova-plugin-advanced-http ionic cordova plugin add cordova-plugin-advanced-http --variable OKHTTP_VERSION="4.9.3"
如果你使用config.xml管理插件配置,也可以直接修改对应插件的参数配置:
<plugin name="cordova-plugin-advanced-http" spec="..."> <variable name="OKHTTP_VERSION" value="4.9.3" /> </plugin>
步骤2:强制Gradle统一依赖版本(可选,如步骤1无效再执行)
在项目platforms/android/app/build.gradle文件的android配置块外添加以下规则,强制所有插件使用统一版本的OkHttp:
configurations.all { resolutionStrategy { force 'com.squareup.okhttp3:okhttp:4.9.3' force 'com.squareup.okhttp3:logging-interceptor:4.9.3' } }
如果需要永久保留该配置,可以使用cordova-custom-config插件实现,避免每次添加平台时配置被覆盖。
步骤3:清理缓存并重新构建
删除本地残留的旧依赖缓存,重新构建项目:
- 删除根目录下的
node_modules文件夹、package-lock.json文件 - 删除
platforms文件夹下的android目录 - 删除
plugins文件夹下的cordova-plugin-advanced-http、cordova-plugin-firebasex目录 - 执行
npm install重新安装前端依赖 - 执行
ionic cordova platform add android@10.0.0重新添加Android平台 - 执行构建命令测试HTTP请求功能
内容的提问来源于stack exchange,提问作者Abhishyam Nayak
相关产品推荐
相关产品推荐

