java - 迁移到androidx后抽象方法错误

标签 java android gson retrofit androidx

Logcat错误

java.lang.AbstractMethodError: abstract method "java.lang.Object com.google.gson.TypeAdapter.read(com.google.gson.stream.JsonReader)"
        at com.google.gson.TypeAdapter$1.read(SourceFile:199)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(SourceFile:131)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(SourceFile:222)
        at com.google.gson.Gson.fromJson(SourceFile:927)
        at com.google.gson.Gson.fromJson(SourceFile:892)
        at com.google.gson.Gson.fromJson(SourceFile:841)
        at com.google.gson.Gson.fromJson(SourceFile:813)
        

我使用过的一些可能相关的库

implementation 'com.google.android.gms:play-services-location:17.1.0'
implementation "com.google.android.gms:play-services-gcm:17.0.0"
implementation "com.google.android.gms:play-services-auth:18.1.0"
implementation "com.google.android.gms:play-services-analytics:17.0.0"
implementation("com.google.guava:guava:30.0-android")
implementation "com.squareup.retrofit2:retrofit:2.9.0"
implementation "com.squareup.retrofit2:converter-gson:2.9.0"
implementation "com.squareup.retrofit2:adapter-rxjava2:2.9.0"
implementation 'com.google.firebase:firebase-crashlytics:17.2.2'
implementation 'com.google.firebase:firebase-analytics:18.0.0'

这是导致错误的代码行

test.add(gson.fromJson(arr.getJSONObject(i).toString(), Test.class));

迁移到 androidx 后会发生此错误。 库已更新。

最佳答案

我能够通过更新 ProGuard 规则解决该问题。

添加了以下内容。

-keep class * extends com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer

关于java - 迁移到androidx后抽象方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64604633/

相关文章:

java - 撤消和重做,无需存储图形坐标

java - 从嵌套 JSON 中提取所有值

java - gson 和引用资料

java - 使用 Java/Groovy 读取 MongoDB oplog

java - 在运行 Android 的 JavaFx 中显示节点的延迟

Java Swing如何对自定义画作分层

java - 在 Android 上重复注释

java - 我可以通过编程方式将 TextView 的 xml 文本与另一个字符串进行比较吗?

android - ACTION_SENDTO 不起作用

android - GSON 将字符串值转换为 null