gpt4 book ai didi

java - 如何解决 android b.a.a.b 超时错误?

转载 作者:行者123 更新时间:2023-12-02 10:19:33 26 4
gpt4 key购买 nike

我有一个 android 应用程序,它使用 okhttpretrofit 连接到后端,以通过 api 获取数据从后端。登录过程将在后端占用大量数据。然而,一些用户遇到了 b.a.a.b 错误。 Android 术语中的 b.a.a.b 是什么,因为我可以被视为 Android 新手。图片如下

或者错误是

mulaiLogin() || ERROR: b.a.a.b: HTTP 504 Connection Timed Out

这是改造和 okhttp 构建器代码

 final OkHttpClient okHttpClient = new OkHttpClient.Builder()
.readTimeout(timeout, TimeUnit.SECONDS)
.connectTimeout(timeout, TimeUnit.SECONDS)
.retryOnConnectionFailure(false)
.build();

retrofit = new Retrofit.Builder()
.baseUrl(BuildConfig.JariBaseURL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.client(okHttpClient)
.build();

虽然登录过程是这样的,但我使用的是rxjava

 addSubscribe(apiStores.userLogin(body), new NetworkCallback<LoginResponse>() {
@Override
public void onSuccess(LoginResponse response) {
MyLocalDB.setAPILogTable(activity.getApplicationContext(), "Login", gson.toJson(body),
response.getCode(), response.getDesc(), MyMethods.GenerateRef(new Date()),
"-");
switch (response.getCode()) {....and so on

某些用户(现场团队)发生此错误。他们无法登录(完成API登录),而大多数用户可以成功登录。

我尝试扩大timeout大小并​​在okhttp上设置retryOnConnectionFailure(false),但似乎并不能解决问题

编辑:因此在跟踪混淆后,b.a.a.b 是 Retrofit2.adapter.rxjava.HttpException

最佳答案

当您在发布版本上启用 minifyEnabled 时,Android 会使用名为 Proguard 的工具来混淆您的类。这使得攻击者在反编译后更难理解它们。 Proguard 获取你的类名、变量和其他内容并更改它们。例如,MyNiceClass 变成了 a 或看起来同样奇怪的东西。您可以使用app/build/outputs/mapping/appname/release 中的mapping.txt 来跟踪更改。

https://developer.android.com/studio/build/shrink-code

你有几个选择

1)使用您的mapping.txt 文件并尝试找出正在讨论的类(没什么乐趣)。

2) 尝试 re-build your stacktrace (如果你有的话):

3) 使用类似 Crashlytics 的工具(由 Firebase 所有)您可以在其中上传您的mapping.txt 文件,它将重新构建您的完整堆栈跟踪以便于阅读。

所以简短的回答是没有人真正知道 b.a.a.b 代表什么。

您的问题:

也就是说,您的应用程序正在经历超时,这看起来非常简单。您已经做了正确的事情,增加了超时延迟,但是在某些时候,延迟变得太长,用户无法等待。

在开始网络请求之前,您是否检查用户是否有互联网连接?

您提到现场团队中的用户,在稳定的 WiFi 连接上进行测试与在现场使用移动信号进行测试有很大的不同。您应该在非常慢的连接上对您的应用程序运行一些测试,看看它的性能如何。您可能需要考虑较小的数据包或优化服务器响应。

希望有帮助。

关于java - 如何解决 android b.a.a.b 超时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54438878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com