我的应用程序在执行时严重崩溃certainAPI 调用,我将范围缩小到这一点:
- 这不是 HTTP 与 HTTPS 的问题
- 我最终使用了两种不同的模拟 API,令我惊讶的是,一种有效,另一种则无效。两者基本相同,请参阅下面的片段
- WIFI 或蜂窝网络上的行为相同
- axios 中的相同问题而不是 fetch
- the
catch
块被调用时出现了一个不起眼的网络错误,但应用程序仍然严重崩溃
环境:Android 10(实际设备),RN 0.61.5
下面的两个调用都只是做了一个简单的操作HTTP GET
这会导致返回 JSON 片段。一个有效,另一个导致严重崩溃。
async foo() {
try {
// this endpoint CRASHES my app
const r = await fetch("http://jsonplaceholder.typicode.com/todos/1");
// this endpoint works just fine
//const r = await fetch("http://echo.jsontest.com/key/value/one/two");
} catch(e) {
console.log("Invoked, but the app still crashes hard right after");
}
}
好的,我在 Logcat 中发现了一个提示 - 似乎使用 OkHttp3 导致了某种版本控制冲突,该冲突仅出现在其中一个响应中(可能是由于 CORS 标头,但这纯粹是毫无根据的猜测;)。
我的解决办法是改变我对 OkHttp3 的依赖build.gradle
from
implementation "com.squareup.okhttp3:okhttp:4.7.2"
to
api(platform("com.squareup.okhttp3:okhttp-bom:4.7.2"))
api("com.squareup.okhttp3:okhttp")
api("com.squareup.okhttp3:logging-interceptor")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)