У меня есть следующий синглтон:
interface MyAPI
{
@GET("/data.json")
suspend fun fetchData() : Call<MyResponse>
companion object
{
private val BASE_URL = "http://10.0.2.2:8080/"
fun create(): MyAPI
{
val gson = GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
.create()
val retrofit = Retrofit.Builder()
.addConverterFactory( GsonConverterFactory.create( gson ) )
.baseUrl( BASE_URL )
.build()
return retrofit.create( MyAPI::class.java )
}
}
}
MyResponse.kt
data class MyResponse(
val listOfData: List<DataEntity>
)
DataEntity.kt
data class DataEntity(
@SerializedName("name")
val fullName: String
}
Я вызываю код из ModelViewследующим образом:
viewModelScope.launch {
try {
val webResponse = MyAPI.create().fetchData().await()
Log.d( tag, webResponse.toString() )
}
catch ( e : Exception )
{
Log.d( tag, "Exception: " + e.message )
}
}
Но я продолжаю получать:
Unable to invoke no-args constructor for retrofit2.Call<com.host.myproject.net.response.MyResponse>. Registering an InstanceCreator with Gson for this type may fix this problem.
Кажется, я не могу найти решение этой проблемы ... Любые подсказки, пожалуйста?
РЕДАКТИРОВАТЬ:
Ответ JSON:
[
{
"name": "A"
},
{
"name": "B"
},
{
"name": "C"
}
]