首页 > 解决方案 > 改造 Post 方法抛出错误

问题描述

我正在使用改造发出 POST 请求,它会引发致命的信号错误,但只有当我使用onResonse, onFailure方法添加回调时才会发生这种情况,如果我调用.execute方法而不是.enqueue它可以正常工作,并且它会在到达回调方法之前抛出此错误。还发现了具有相同问题的类似帖子,这可能与我正在使用gradle:3.1.2和改造的 gradle 版本有关retrofit:2.4.0

错误:

Fatal signal 11 (SIGSEGV), code 1, fault addr 0x3ed6191f0 in tid 5897

邮寄方式:

@FormUrlEncoded
@POST("url")
fun login(@Field("username") username: String, @Field("password") password: String): Call<LoginResponse>

入队回调:

override fun login(email: String, password: String, callback: LogInDataSource.LogInCallback) {
    loginService.login(email, password).enqueue(object : Callback<LoginResponse>{
        override fun onFailure(call: Call<LoginResponse>?, t: Throwable?) {
            callback.onLoginFailed()
        }

        override fun onResponse(call: Call<LoginResponse>?, response: Response<LoginResponse>?) {
            if (response?.body() != null){
                callback.onLoginSuccess(response.body()!!)
            }else{
                callback.onLoginFailed()
            }
        }
    })
}

LoginResponse 数据类:

data class LoginResponse(var token: String = "")

回复:

{
"token": "adasdasdfdsf",
"user_email": "asdasd@gmail.com",
"user_nicename": "asdasdgmail-com",
"user_display_name": "asdasd@gmail.com"
}

标签: androidretrofitretrofit2

解决方案


所以似乎问题是由即时运行引起的,禁用即时运行解决了问题


推荐阅读