java.lang.RuntimeException:缺少类型参数

Tâm*_* Lê 14 java android gson

我的项目遇到了这个错误:

在此输入图像描述

我尝试使用此链接修复它

但我不能,因为我不太明白答案。请告诉我如何解决它。谢谢

小智 71

我在 Gson 库中遇到了同样的问题,并搜索了很多解决方案,但没有一个对我有用,然后我阅读了 R8 全模式真正的更改,并在 proguard 中添加了这三行,它对我来说工作得很好。

如果有人遇到同样的问题,你可以尝试以下方法:

-keep class com.google.gson.reflect.TypeToken
-keep class * extends com.google.gson.reflect.TypeToken
-keep public class * implements java.lang.reflect.Type
Run Code Online (Sandbox Code Playgroud)

  • 这种情况发生在签名的 APK 中,如果您有调试 APK,您可能不会收到此错误。我想知道。为什么会发生这种情况。那么你的回答给出了我需要知道的信息。 (3认同)
  • [此处](https://github.com/google/gson/blob/master/examples/android-proguard-example/proguard.cfg)您有一个与 Gson 兼容的 Android proguard 示例。我遇到了同样的问题并通过此配置解决了它。 (2认同)

Nab*_*ari 2

该类TypeToken需要一个类型参数。

看看你的代码,看起来你应该替换

Type listType = new TypeToken() {
}.getType();
Run Code Online (Sandbox Code Playgroud)

Type listType = new TypeToken<List<Face>>() {
}.getType();
Run Code Online (Sandbox Code Playgroud)