gpt4 book ai didi

android - Proguard 混淆使我的基于通信的应用程序的更新版本成为 'impossible' 以与旧版本的消息传递兼容

转载 作者:行者123 更新时间:2023-11-29 01:32:30 24 4
gpt4 key购买 nike

我的应用程序的一部分通过互联网在两个设备之间传输序列化对象数据,并在另一端反序列化(通过使用 Kryo 库)。 Proguard 混淆了这些类的名称,但我现在意识到我应该不混淆序列化类,以便应用程序的 future 更新仍然具有一致的类名。然而,现在为时已晚。

future 的更新可以通过 Proguard 进行不同的混淆处理,或者不对序列化类进行混淆处理。无论哪种方式,这都意味着当我的应用程序的旧版本和新版本尝试相互通信时会发生崩溃,因为旧版本将发送一个对象,由于类名不匹配(必须提供给 Kryo 方法调用)。

这让我处于这样一种境地:我不确定如何才能为我的应用程序提供 future 的更新,而不会在推出新版本时让我的用户因这些潜在的崩溃而烦恼。唯一真正的行动方案是否涉及必须经历这样一个时期,直到每个人都了解彼此的最新情况?

对于处理这种棘手情况的最佳方法,我将不胜感激。

最佳答案

除了 CommonsWare 的注释,您还可以使用 Proguard 的 -applymapping filename受影响的类/字段/方法的选项。此处,filename 指的是之前 Proguard 运行时保存的映射文件的副本。对于您的情况,我建议从此文件中删除所有未受影响的内容,以便仅保留受影响类等的混淆名称。

关于android - Proguard 混淆使我的基于通信的应用程序的更新版本成为 'impossible' 以与旧版本的消息传递兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30415474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com