2

我正在开发一个 ionic 4 应用程序并且遇到了 CORS 问题,所以我按照这篇文章https://ionicframework.com/docs/native/http/安装了“高级 http”插件。我正在使用 devapp 来测试我的应用程序。

我正在尝试 http.post 到带有标头的 Azure B2C 令牌 URL{ 'Content-Type': 'application/x-www-form-urlencoded'}

  • 在 iOS DevApp 上工作得很好
  • 在 Android Studio 模拟器上工作正常ionic cordova run android --emulator
  • 在 Android 设备上工作正常ionic cordova run android --device
  • 在 Android 上,DevApp 崩溃并出现以下错误(我能够使用adb logcat并找到错误)

没有虚方法 getHttpUrlChecked(Ljava/lang/String;)Lokhttp3/HttpUrl; 在 Lokhttp3/internal/Internal 类中;或其超类('okhttp3.internal.Internal' 的声明出现在 base.apk 中)

网上的一些帖子表明它在不同的cordova插件之间存在冲突,但我从一个空白模板开始,只使用“cordova-plugin-advanced-http”,DevApp立即崩溃。

有什么建议么?

提前致谢

4

1 回答 1

1

通常的问题是 okHTTP 库之间的冲突:

https://github.com/silkimen/cordova-plugin-advanced-http/issues/130

通过项目的所有构建文件(package.json、build.gradle、config.xml、project.properties 等)为“okHTTP”执行不区分大小写的“查找”(“grep”)。您应该能够找到 - 并手动更正 - Android 版本中的差异。

具体来说,您似乎必须破解 project.properties:

https://github.com/transistorsoft/cordova-background-geolocation-lt/issues/905

请发回您找到的内容。

PS:

okHTTP的最新3.x版本是3.14.4;最新的 4.x 版本是 4.2.2:

https://square.github.io/okhttp/changelog

您不得使用早于 3.4 的版本才能使“set/getHttpUrlChecked()”正常工作

于 2019-11-03T21:29:19.790 回答