ClassNotFoundException 当将 SafeArgs 与 Proguard 和 Navigation A



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

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

我在 Gradle 中使用minifyEnabled true

另外,我有三个模块appdatadomain。因此,在我添加的所有三个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

因为我不必继续用ParcelableSerializable@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)

相关内容

  • 没有找到相关文章

最新更新