为什么我会收到 IllegalArgumentException: class xxxx isn'tparameterized?

Ton*_*Ton 2 android bundle

我将 Android Studio 更新为 Flamingo、Gradle 和库。之后,如果通过 Android Studio 从模拟器中安装该应用程序,则该应用程序运行良好,但如果使用捆绑包从 Play 商店安装该应用程序,则该应用程序会失败。我认为如果从 .apk 文件安装它就可以工作。

我得到例外:

java.lang.IllegalArgumentException: class o4.b isn't parameterized
Run Code Online (Sandbox Code Playgroud)

Ton*_*Ton 8

让我在这里写下我的解决方案,以防对其他人有所帮助。

几个小时后,发现异常发生在这段代码中:

Type type = new TypeToken<ArrayList<String>>() {}.getType();
Run Code Online (Sandbox Code Playgroud)

我需要使用 Gson.fromJson() 函数的代码。

TypeToken 是使用以下命令导入的:

import com.google.common.reflect.TypeToken;
Run Code Online (Sandbox Code Playgroud)

我不得不改为:

import com.google.gson.reflect.TypeToken;
Run Code Online (Sandbox Code Playgroud)

然后我遇到了另一个错误:

RuntimeException:缺少类型参数

感谢这个答案,我解决了:/sf/answers/5076440421/

proguard-rules.pro文件中我添加了以下内容:

-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)

这一切让我损失了大量的时间。我希望我没有更新 Android Studio 或依赖项。