Я сделал приложение для 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 вообще не показывает никаких исключений или трассировок стека.