use*_*924 6 android gson android-gradle-plugin android-r8
java.lang.RuntimeException: Unable to invoke no-args constructor for class com.arch.example.network.models.NetworkPagingList. Registering an InstanceCreator with Gson for this type may fix this problem.\n at com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:228)\n at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:212)\n at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:40)\n at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:27)\n at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:243)\n at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:153)\n at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)\n at java.lang.Thread.run(Thread.java:1012)\n Caused by: java.lang.UnsupportedOperationException: Abstract class can't be instantiated! Class name: com.arch.example.network.models.NetworkPagingList\n at com.google.gson.internal.UnsafeAllocator.assertInstantiable(UnsafeAllocator.java:120)\n at com.google.gson.internal.UnsafeAllocator$1.newInstance(UnsafeAllocator.java:49)\n at com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:225)\n at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:212)\xc2\xa0\n at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:40)\xc2\xa0\n at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:27)\xc2\xa0\n at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:243)\xc2\xa0\n at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:153)\xc2\xa0\n at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)\xc2\xa0\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)\xc2\xa0\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)\xc2\xa0\n at java.lang.Thread.run(Thread.java:1012)\xc2\xa0\nRun Code Online (Sandbox Code Playgroud)\n实体:
\nimport com.google.gson.annotations.SerializedName\n\ndata class NetworkPagingList<T>(\n @SerializedName("data")\n val data: List<T>\n)\nRun Code Online (Sandbox Code Playgroud)\n使用地点:
\n @GET("worker/shifts")\n suspend fun getShifts(\n @Query("page") page: Int,\n @Query("perPage") perPage: Int\n ): NetworkPagingList<NetworkShift>\nRun Code Online (Sandbox Code Playgroud)\n那么这里到底出了什么问题呢?
\n以前工作正常,但似乎最新的 Android gradle 插件停止与发布版本一起工作,R8 的一些 mb
\n尝试添加@Keep您的数据类,如下所示:
import com.google.gson.annotations.SerializedName
@Keep
data class NetworkPagingList<T>(
@SerializedName("data")
val data: List<T>
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3207 次 |
| 最近记录: |