Kotlin :启用 proguard 后应用程序崩溃



我编写了这个模型类来从 Firbase 数据库获取配置

@Keep
class Configuration {
@SerializedName("BASE_API_URL")
var BASE_API_URL: String = ""
@SerializedName("BASE_URL")
var BASE_URL: String = ""
}

我收到以下错误。 启用 PROGUARD 后

com.google.firebase.database.DatabaseException: Found two getters or fields with conflicting case sensitivity for property: base_api_url
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$a.a()
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$a.<init>(:5)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.a()
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.a(:4)
at com.google.firebase.database.DataSnapshot.getValue(:1)
at com.io.chefjoy.customer.ui.activity.SplashScreenActivity$fetchConfigData$masterVEL$1.onDataChange()
at com.google.firebase.database.core.ValueEventRegistration.fireEvent()
at com.google.firebase.database.core.view.DataEvent.fire()
at a.d.b.d.d.c.b.run(:4)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5728)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

你的gradle防护线是这样的吗?

proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

问题也可能出在@Keep,因为您的@SerializedName和变量名称相同。因此,请尝试删除@Keep或保留@Keep注释,而是将变量重命名为小写变量,看看它是否有效。

最新更新