我在发布模式下使用改造收到空响应,但在调试模式下一切正常

Ham*_*kia 2 android gson retrofit

我在应用程序中使用retrofit来调用http请求并使用gson来解析json对象。我在调试模式下得到正确的响应,但在使用发布模式构建时我的响应是null,我的应用程序不再工作

xSH*_*ERU 6

可能您已为发布模式启用了 proguard。\n检查您的应用 gradle 版本并查看是否启用了 minify。如果禁用它,您的代码将不会\xe2\x80\x99 变得模糊,并且发布版本将不再有任何问题。

\n\n

如果您确实想混淆代码,这有利于应用程序的安全,那么您必须为应用程序中包含的每个库找到混淆器规则。然后您必须将这些规则添加到您的 proguard 规则文件中。此外,您还必须跳过 POJO 类,以免变得混乱。

\n\n

大多数库的通用混淆规则可以在 @jemshit 创建的这个文件中找到

\n\n

https://gist.github.com/jemshit/767ab25a9670eb0083bafa65f8d786bb

\n


Ham*_*kia 5

一段时间后我找到了答案...我使用 proguard 进行发布模式,因此由于混淆,模型字段名称发生了变化,因此 gson 无法解析 http 响应,防止此问题的最佳方法是使用 @SerializedName("field_name") 注释在混淆后可以解析的字段中。