首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建发布版本后,Retrofit2将获得200,但数据为空

构建发布版本后,Retrofit2将获得200,但数据为空
EN

Stack Overflow用户
提问于 2020-07-07 15:24:54
回答 1查看 31关注 0票数 0

我得到了这个问题:Android Retrofit: Response 200 in both release and debug version but release version have empty value returned

但我不认为这是一个理想的解决方案。但这给了我一个想法,这与Proguard的设置有关。

我已经检查了来自服务器的数据是否不正确。但它是一样的,也很好。我的gradle设置相关的Proguard如下:

代码语言:javascript
复制
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
            debuggable true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

并且proguard-rules文件没有任何异常行。

我要把它改成这样。包括shrinkResources属性:

代码语言:javascript
复制
    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            debuggable false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug {
            shrinkResources true
            minifyEnabled false
            debuggable true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

开启proguard后如何正确接收数据?

EN

回答 1

Stack Overflow用户

发布于 2020-07-07 16:06:33

我通过保留模型的数据名称解决了这个问题。

将这一行写入proguard-rules.pro

代码语言:javascript
复制
-keep class com.example.model.* // model is package name.

或者如果您使用的是androidX。您可以使用@Keep注释。

代码语言:javascript
复制
@Keep
class YourItem(
    val name: String,
    val age: Int?
    ){
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62770065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档