我有一个override func viewDidLoad() {
super.viewDidLoad()
self.collectionView.delegate = self
self.collectionView.datasource = self
self.collectionView.register(UINib(nibName: "WallPapersCell", bundle: nil), forCellWithReuseIdentifier: "WallPapersCell")
}
应用程序,它通过android
和okhttp
连接到后端,以通过retrofit
从后端获取数据。登录过程将在后端占用大量数据。但是,某些用户遇到了api
错误。 b.a.a.b
术语上的b.a.a.b
是什么,因为我可以视为android的新手。图片如下
或者错误是
Android
这是改造和okhttp构建器代码
mulaiLogin() || ERROR: b.a.a.b: HTTP 504 Connection Timed Out
虽然登录过程是这样的,但我正在使用rxjava
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();
某些用户(现场团队)发生此错误。他们无法登录(完成 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 Login
的大小并在timeout
上设置retryOnConnectionFailure(false)
,但似乎并不能解决问题
编辑:因此,在跟踪混淆之后,b.a.a.b是retrofit2.adapter.rxjava.HttpException
答案 0 :(得分:1)
在发布版本中启用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连接上进行测试与在移动信号上进行现场测试存在很大差异。您应该在连接速度非常慢的应用上运行一些测试,并查看其性能。您可能需要考虑使用较小的数据包或优化服务器响应。
希望有帮助。