java.lang.RuntimeException:无法为接口调用无参数构造函数

时间:2019-06-23 13:59:24

标签: android-studio kotlin gson retrofit2

im正在创建一个用于检查手机用户名(Kotlin)的应用程序,但是我无法检索我与邮递员检查的简单json(json结果应类似于以下“ {“” nama_hp“:” daftrogus“}”),而已)。但是我不明白是什么问题。

我尝试观看youtube教程,阅读文档,安装任何可能有助于解决问题的库,但这些方法均无效(尝试解决问题需要4天)。

这是我的界面(称为myAPI)

package com.example.kpprojectlearn_secondtry.Remote

import com.example.kpprojectlearn_secondtry.Model.phoneUser
import retrofit2.Call
import retrofit2.http.*

interface myAPI{
     @GET("search_phone.php")
    fun showPhoneUser(@Query("no_hp")phonenumber_check: String) : Call<phoneUser>
}

这是我的model.phoneUser类

class phoneUser{
    var nama_hp:String=""
    get() = field
    set(value){
        field = value
    }
}

这是我放置BASE_URL的通用文件

package com.example.kpprojectlearn_secondtry.Common

import com.example.kpprojectlearn_secondtry.Remote.RetrofitClient
import com.example.kpprojectlearn_secondtry.Remote.myAPI

object Common {
    val BASE_URL="http://192.168.0.106/webservicePHP/"

    val api: myAPI
    get() = RetrofitClient.getClient(BASE_URL).create(myAPI::class.java)
}

这是我在输入“ phonenumber_check”之后将“ answer_data”设置为json结果的功能

internal lateinit var mService: myAPI

mService = Common.api

private fun showPhoneData(phonenumber_check: String){
        mService.showPhoneUser(phonenumber_check)
            .enqueue(object : Callback<com.example.kpprojectlearn_secondtry.Model.phoneUser>{
                override fun onFailure(call: Call<com.example.kpprojectlearn_secondtry.Model.phoneUser>, t: Throwable) {
                    Toast.makeText(this@Mobile_Check, t!!.message, Toast.LENGTH_SHORT).show()
                }

                override fun onResponse(
                    call: Call<com.example.kpprojectlearn_secondtry.Model.phoneUser>,
                    response: Response<com.example.kpprojectlearn_secondtry.Model.phoneUser>
                ) {
                    if(answer_data != null) {
                        phonecheck_answer_box.setVisibility(View.VISIBLE)
                        val gson = GsonBuilder().setLenient().create()
                        val specificURL = gson.fromJson("nama_hp", myAPI::class.java)
                        val converted = specificURL.toString()
                        Log.e("X", converted)
                        answer_data.setText(converted)

                    } else {
                        phonecheck_answer_no.setVisibility(View.VISIBLE)
                    }
                }
            })
    }

我希望将“ answer_data”的textView更改为json结果,例如“ daftrogus”。

谢谢

0 个答案:

没有答案