问题描述
我正在使用 builtins.print
插件和 SafeArgs
,但应用程序崩溃了。
Navigation Architecture Component
我在 Gradle 中使用 Caused by: java.lang.classNotFoundException: Didn't find class "com.package.domain.models.Model"
。
此外,我有三个模块 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
。
但应用程序仍然崩溃。任何帮助将不胜感激。
解决方法
尝试将 @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)
,我认为更合适的做法是将其添加到我的 cat
文件中。
proguard-rules
因为我不必继续用 -keepnames class * extends android.os.Parcelable
-keepnames class * extends java.io.Serializable
注释我的模型,即 @Keep
或 Parcelable
或保持整个模型包远离混淆。
查看 this 了解更多信息。