gpt4 book ai didi

android - 设置 minifyEnabled 为真时无法使用 GSON 解析 json 对象

转载 作者:行者123 更新时间:2023-12-04 23:57:59 25 4
gpt4 key购买 nike

当我使用

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}

一切正常。

但是如果改成

buildTypes {
release {
minifyEnabled true
useProguard true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}

我收到一个解析错误。

我的解析类:

data class SearchItem(
@SerializedName("position") val position: Long,
@SerializedName("user") val user: String?
) {
fun getId(): Long {
return 0L
}
}

data class SearchResponse(
@SerializedName("list") val list: List<SearchItem>,
@SerializedName("has_more") val has_more: Boolean,
@SerializedName("rank_token") val rank_token: String,
@SerializedName("status") val status: String
)

这里我用的是gson:

val searchResponse = Gson().fromJson(jsonObject.toString(), SearchResponse::class.java)

proguard-rules.pro 我有一个非注释行 -keepattributes *Annotation*

如有任何帮助,我将不胜感激!

编辑错误日志:

E/AndroidRuntime: FATAL EXCEPTION: k.c0 Dispatcher
Process: PID: 31392
java.lang.NullPointerException: throw with null exception
at h.a.a.j.a.a.a(:2)
at k.l0.g.e$a.run(:6)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)

这仅在安装 .apk 时发生。如果我从 Android Studio 运行该应用程序,一切都很好。

最佳答案

我相信您需要编辑您的 proguard-rules.pro 文件以将这些数据类包含在这一行中。您可以阅读更多相关信息 here .

-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}

关于android - 设置 minifyEnabled 为真时无法使用 GSON 解析 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63015237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com