使用 GSON 库导出/签署 Android 项目

Posted

技术标签:

【中文标题】使用 GSON 库导出/签署 Android 项目【英文标题】:Exporting/Signing Android Project using GSON Library 【发布时间】:2012-02-22 08:03:51 【问题描述】:

我在一个 android 应用程序中使用当前的 GSON 库,当应用程序在没有使用密钥库签名的情况下构建时,一切都按预期工作。

当我导出应用并对其进行签名时,gson 无法将 Reader 解析到我的类中。

我尝试在不使用 proguard 的情况下对应用程序进行签名,但这没有任何区别。我真的不知道为什么它在签名时表现不同。

有问题的行是这样的:

Words words = new Words();
words = gson.fromJson(r, Words.class);

应用签名时,该对象只是空的。

【问题讨论】:

请问您能否更具体地说明错误,有什么异常? 没有出现异常或错误,但毕竟是混淆了。 【参考方案1】:

哇,我原以为 proguard 的混淆会破坏你的模型,但我想现在 zipalign 把它搞砸了,为了确保你可以解析你的 json,你可以为你的模型提供特定的 gson 注释。

【讨论】:

我再次尝试删除 proGuard,它现在可以正常工作了。我一定是第一次错过了什么。现在只需要弄清楚如何启用 proGuard 并让它工作。我希望答案就在这里:code.google.com/p/google-gson/source/browse/trunk/examples/… 是的,这听起来很合理,但我自己很难使用 proguard,使其与我的应用程序一起工作。我最终不得不通过使用注释来删除对我的模型的直接引用。 顺便说一句,我觉得 Jackson 是一个更好(更快)的对象映射器! 我正在调查杰克逊,但看起来必须首先将响应保存到文件中......?在 proguard.cfg 中实现以下几行就可以了。 -keepattributes 签名 -keepattributes 注释 -keep class com.mypackagename.MyClass *;

以上是关于使用 GSON 库导出/签署 Android 项目的主要内容,如果未能解决你的问题,请参考以下文章

Android之GSON的使用

Kotlin编程开发Android运用程序(Volley+Gson依赖库)

怎样在androidstudio中导入gson包

用GSON解析Json格式数据

Kotlin基础从入门到进阶系列讲解(入门篇)Android之GSON的使用

Gson - 学习