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

时间:2019-09-22 18:13:17

标签: android gson retrofit

我在应用程序中使用改造来调用http请求,并使用gson解析json对象。我在调试模式下正确获得了响应,但是在使用发布模式进行构建时,我的响应是.Rproj,我的应用程序不再起作用

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

可能您已为发布模式启用了proguard。 检查您的应用gradle版本,并查看是否启用了minify。如果禁用它,您的代码将不会变得晦涩难懂,并且发行版本也将不再有任何问题。

如果您确实希望混淆代码,这对确保应用程序的安全性是有利的,那么您必须为应用程序中包含的每个库查找保护规则。然后,您必须在Proguard Rules文件中添加这些规则。另外,您还必须避免混淆POJO类。

大多数库的通用保护规则可以在@jemshit创建的此文件中找到

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