繁体   English   中英

使用GSON的Android应用程序在调试模式下工作,但在运行已签名的apk时则不行

[英]Android app with GSON works in debug mode, but not when running signed apk

我做了一个Android应用程序,在模拟器和我的实际设备上调试时工作正常。

但是,当在设备上运行签名的apk时,我的GSON反序列化不起作用。

此代码中出现此问题:

public static void parseLanguage(String response) {
    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.setFieldNamingStrategy(new MyFieldNamingStrategy());
    Gson gson = gsonBuilder.create();
    _Helper.s = gson.fromJson(response, _Strings.class);
}

我也用这个类:

class MyFieldNamingStrategy implements FieldNamingStrategy {
//Translates the Java field name into its JSON element name representation.
    @Override
    public String translateName(Field field) {
        return field.getName();
    }
}

我已经检查过名为“response”的字符串是一个有效的JSON字符串,但_Strings.class的实际填充不起作用,并且_Strings.class中包含的所有字符串都保持为空。

有谁知道为什么会这样? 它仅在运行签名的apk时发生,并且Logcat输出根本不显示任何异常或堆栈跟踪。

只要有可能,只需使用调试输出来代码。 这将为您提供更多洞察力。 我怀疑问题出在签字上。 最有可能的是你的项目/构建配置。 一个可能的原因可能是使用proguard(在工具链中)进行模糊处理 - 这会破坏您的命名策略。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM