我制作了一个在模拟器中正常工作并在我的实际设备上进行调试的Android应用程序。与GSON的Android应用程序在调试模式下工作,但不是在运行签名apk时
然而,在设备上运行的签署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();
}
}
我检查了名为“回应”的字符串是一个有效的JSON字符串,但_Strings.class的实际填充不起作用,并且_Strings.class中包含的所有字符串保持空白。
有没有人有任何想法,为什么会发生这种情况?它仅在运行已签名的apk时发生,并且Logcat输出完全不显示任何异常或堆栈跟踪。
没人。除非您发布更多信息(logcat输出,最终异常等) – 2011-12-27 11:41:59
logcat输出不会产生任何相关和有用的信息,我也没有任何例外。我完全意识到这个问题是模糊的,如果有例外情况会更容易弄清楚。令我困扰的是,显然它与签署vs调试有关,我认为也许其他人遇到过类似的问题。 – Eivind 2011-12-27 12:03:16