Retrofit Post方法抛出错误

时间:2018-06-03 14:23:27

标签: android retrofit retrofit2

我正在通过改造发出POST请求并且它会引发致命的信号错误,但只有当我使用onResonse, onFailure方法添加回调时,如果我调用.execute方法.enqueue它才有效没有问题,它会在它到达回调方法之前抛出此错误。同样发现类似的帖子有同样的问题,它可能与gradle版本有关,我正在使用gradle:3.1.2并改进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"
}

1 个答案:

答案 0 :(得分:0)

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