3

我正在使用SafeArgs插件,Navigation Architecture Component但应用程序崩溃了。

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.package.domain.models.Model"

minifyEnabled true在 Gradle 中使用。

另外,我有三个模块appdatadomainproguard-rules所以,在我添加的所有三个文件中

-keepnames class com.package.domain.models.Model1
-keepnames class com.package.domain.types.ImageType
-keepnames class com.package.domain.models.Model

argType在导航图中使用这三个类。

但是应用程序仍然崩溃。任何帮助,将不胜感激。

4

4 回答 4

3

我认为更合适的做法是将其添加到我的proguard-rules文件中。

-keepnames class * extends android.os.Parcelable
-keepnames class * extends java.io.Serializable

因为我不必一直注释我的模型,@Keep或者Parcelable使Serializable整个模型包远离混淆。

检查以获取更多信息。

于 2021-04-29T05:21:51.767 回答
2

尝试将@Keep注释放在首位。喜欢

import androidx.annotation.Keep

@Keep
data class RepoData(val id: Long, val name: String)
于 2021-04-22T09:54:58.443 回答
0

您可以保留整个模型包(实际上通常可以这样做),例如

-keep class com.package.domain.models.** { *; }
于 2021-04-22T18:52:07.017 回答
-1

@keep每当您希望类留在内存中时,请始终使用注释。

@Keep 数据类 MyData(val id: long,val name: String)

于 2021-04-28T09:49:31.283 回答