java.lang.RuntimeException: Невозможно вызвать конструктор без аргументов для интерфейса - PullRequest
0 голосов
/ 23 июня 2019

я создаю приложение, которое проверяет имя пользователя телефона (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>
}

это моя модель. 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)
                    }
                }
            })
    }

Я ожидаю, что textView "answer_data", измененный на результат json, как этот "daftrogus".

Спасибо

...