我正在使用SafeArgs
插件并Navigation Architecture Component
但应用程序崩溃了。
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.package.domain.models.Model"
我在 Gradle 中使用minifyEnabled true
。
另外,我有三个模块app
、data
和domain
。因此,在我添加的所有三个proguard-rules
文件中
-keepnames class com.package.domain.models.Model1
-keepnames class com.package.domain.types.ImageType
-keepnames class com.package.domain.models.Model
我在导航图中使用这三个类作为argType
。
但是该应用程序仍在崩溃。任何帮助将不胜感激。
我认为更合适的做法是添加它以将这些添加到我的proguard-rules
文件中。
-keepnames class * extends android.os.Parcelable
-keepnames class * extends java.io.Serializable
因为我不必继续用Parcelable
或Serializable
@Keep
注释我的模型,也不必让整个模型包远离混淆。
查看此内容以获取更多信息。
尝试将@Keep
注释放在类的顶部。喜欢
import androidx.annotation.Keep
@Keep
data class RepoData(val id: Long, val name: String)
您可以保留整个模型包(实际上通常可以这样做)像
-keep class com.package.domain.models.** { *; }
每当您希望类保留在内存中时,始终使用@keep
注释。
@Keep 数据类 MyData(val id: long,val name: String)