Android 为什么我需要将源代码保存在Proguard规则中以防止崩溃?

Android 为什么我需要将源代码保存在Proguard规则中以防止崩溃?,android,proguard,bundling-and-minification,Android,Proguard,Bundling And Minification,我尝试在启用minifyEnabled和shrinkResources设置为true的情况下构建和运行我的应用程序。然而,它一直在崩溃,仔细观察,它正在崩溃我的一些课程,我需要保留这些课程 为什么我需要防止某些类混淆,而不是其他类?我只是想知道为什么会这样。谢谢大家! 编辑: 无法缩小的类是序列化对象根据我的经验,键值对象需要从混淆中排除 在我的例子中,问题是我的模型类和键在每次构建时都被混淆为不同的名称和字符串,并使缓存数据在每次重构时都被破坏 首先生成模糊化为“A”的模型密钥,然后生成模糊化

我尝试在启用minifyEnabled和shrinkResources设置为true的情况下构建和运行我的应用程序。然而,它一直在崩溃,仔细观察,它正在崩溃我的一些课程,我需要保留这些课程

为什么我需要防止某些类混淆,而不是其他类?我只是想知道为什么会这样。谢谢大家!

编辑:
无法缩小的类是序列化对象

根据我的经验,键值对象需要从混淆中排除

在我的例子中,问题是我的模型类和键在每次构建时都被混淆为不同的名称和字符串,并使缓存数据在每次重构时都被破坏

首先生成模糊化为“A”的模型密钥,然后生成模糊化为“B”的模型密钥

更新:
要从模糊处理中排除类,请根据我的经验检查此项,键值对象需要从模糊处理中排除

在我的例子中,问题是我的模型类和键在每次构建时都被混淆为不同的名称和字符串,并使缓存数据在每次重构时都被破坏

首先生成模糊化为“A”的模型密钥,然后生成模糊化为“B”的模型密钥

更新:
要从混淆中排除类,请检查此

我检查了我的代码,发现我需要保留的大多数类都是序列化对象。有什么办法保护这些东西吗?我以前已经排除了这些东西。我只是需要一个解释,为什么我需要排除这些对象,你的回答让我了解了为什么。谢谢我对它也不是很了解,当这个问题在生产环境中发生时,我以一种艰难的方式学会了它。我检查了我的代码,发现我需要保留的大多数类都是序列化对象。有什么办法保护这些东西吗?我以前已经排除了这些东西。我只是需要一个解释,为什么我需要排除这些对象,你的回答让我了解了为什么。谢谢我对它也不是很了解,当这个问题发生在生产环境中时,我以一种艰难的方式学会了它