我的资产文件夹中有一个目录,其中json用于数据库。
资产/数据库/ database_1 / locations.json
使用minifyEnabled true
时,它会删除这些资产,因为它认为它们没有被使用。
如何告诉ProGuard它们已被使用?
感谢。
答案 0 :(得分:1)
事实证明minifyEnabled true
不删除任何资产,它仅用于代码优化并对其余类进行模糊处理。
问题是我在没有@SerializableName
的情况下使用Gson和我的数据库模型,并且在模糊处理时它无法绑定值。
dataclass MyModel( val myName : String )
会变成:(或更混淆的东西)
dataclass XYZ( val 123 : String )
然后Gson找不到值" myName"把JSON。
要解决此问题,您有两种解决方案。
@SerializableName
。useProguard false
。答案 1 :(得分:0)
进行这种优化的不是ProGuard。见https://developer.android.com/studio/build/shrink-code.html#keep-resources。话虽这么说,资产不应该只受资源影响。